`
haitaoandroid
  • 浏览: 27702 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论
文章列表
题目:随机产生5个数,这5个数每个数的范围都在[10,35]之间,5个数的和是定值100,尽量让5个数的概率随机,写出算法?? 如,原来a,b,c,d,e都是20,随机后变成a=34b=29c=11d=10e=16,但是他们之和还是100,再次随机后a=11b=21c=13d=28e=27,他们的和还是100。 我的解决思路是,第一个数和第二个数在[10,35]中随机,后面的数随机要满足一定的条件:保证它之后的数随机后能在[10,35]之间,极端不满足的情况是前两个数都随机到35,那么后面的三个数只能都是10了,所以第三个数随机的时候要满足(100-a-b-c)/2>10||( ...
多玩的三个大题: 1:X和Y是两串长度一样的字符串,X和Y的差异值定义为在两个字符串上对应位置上不一样的字符的个数,比如“ant”和“art”的差异值是1.给定两个字符串A和B,A的长度小于或者等于B,你可以在A的前面或者后面任意添加字符,舍得A和B长度一样。写一个方法求出最后能得到的最小的差异值是多少? 说明:A和B的长度范围是[1,50] , A和B的字符只包含‘a’-'z' ,A的长度小于或者等于B 这个题目做出来了,可是在笔试的时候递归那个地方写错了一点~~没有比较count了,下面是我的递归解法: int minimize(String a , String b){ ...
题目:给定一数组a[N],我们希望构造数组b [N],其中b[j]=a[0]*a[1]…a[N-1] / a[j],在构造过程中,不允许使用除法: 要求O(1)空间复杂度和O(n)的时间复杂度; 除遍历计数器与a[N] b[N]外,不可使用新的变量(包括栈临时变量、堆 ...
1:虚函数的定义,当从父类中继承的时候,虚函数和被继承的函数具有相同的签名。但是在运行过程中,运行系统将根据对象的型別,自动地选择适当的具体实现运行。由此可以看出Java的普通函数都是虚函数。因为Java是默认动态绑定的。只有方面前面加static和final的才不是虚函数。(参考:http://blog.csdn.net/trojanpizza/article/details/6556604) 2:Java序列化的原理就是把对象按照一定的格式以二进制形式放入文件,下次又按照这个格式读取出来生成对象。这篇文章讲的很详细。(http://developer.51cto.com/art/20090 ...
1:++操作为什么比+1操作高效,试从内存方面详细解释 都知道编译后++操作的指令比+1的少,所以肯定高效,但具体解释起来还要记住很多东西。++操作主要是通过字节码iinc指令来实现,其意思是:将指定的int型整型变量增加指定值。决定测试一下,以下代码: int i = 100; i++;编译成字节码后: bipush表示将单字节的常量值(-128~127)推送至栈顶,这里插播一句,java内存里面的栈是根据方法来分的,一个方法一个栈帧,一个栈帧里面有变量表,有操作数栈,有程序计数器等,上面的i是存在变量表里面第二个变量里面,因为第一个 ...
校招快要开始了,复习一下以前的排序知识,下面的代码都是以前写的,今天翻出来又重新看了一下,贴上来。也算是复习吧。 插入排序,稳定排序(稳定是指相同的两个数在排序之后它们的相对位置不变。): //插入排序 public static void insertSort(int[] a){ int len = a.length; //遍历数组 for(int i=1;i<len;i++){ int temp = a[i]; int j=i-1; while(j>=0&&temp<a[j]){ //循环比较插入, ...
  流(Stream)是最早的Java对IO的抽象,而通道(Channel)是NIO对新Java对IO的抽象,通道与流的不同之处在于通道是双向的。而流只是在一个方向上移动(一个流必须是InputStream或者OutputStream的子类), 而通道可以用于读、写或者同时用于读写。流和通道的基本单位都是字节,但是流是以字节数组作为缓冲区中介,而通道是以ByteBuffer来作为缓冲区中介。 流中包含的字节如流水一样,一旦流过去,就无法再使用。但由于流的实现是抽象类,在其子类中可以选择覆写父类的某些操作,所以子类输入输出流可能会有额外的控制操作,以便实现流的部分内容的重新读 ...
类加载分7个步骤: 1:加载 1)通过一个类的全限定名来获取此类的二进制字节流 2)将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构 3)在Java堆中生成一个代表这个类的java.lang.Class对象,作为方法区 ...
TCP的连接建立主要有三次握手,终止有四次握手。看下图: 前三个是建立连接的过程,简称三次握手,介绍一下其过程: 1,客户端发送一个带序号(即ISN,图中为1415531521)的SYN段请求tcp连接,即上面的报文段1 2,服务器发回一个带序号(即1823083521)的SYN段回应请求,同时将发来的客户端的ISN加1(即1415531522)以对客户端的SYN报文段进行确认 3,客户端将服务器端的ISN加1(即1823083521)以对服务器的SYN段进行回应。 简单的说就是 客户端说:“我要跟你连接...” 服务器端说:“好,可以” 客户端还说了一句保证的话:“那行, ...
各种收集器介绍: Serial收集器:单线程收集器,必须暂停其他所有的工作线程,默认client模式下新生代的收集器 ParNew收集器:Serial的多线程版本,一般在Servr模式下的新生代首选收集器,除Serial外,目前只有它能与CMS收集器配合工作,ParNew收集器在单cpu的情况下不会有比Serial收集器更好的效果,甚至由于存在线程交互的开销,该收集器在通过超线程技术实现的两个cpu的环境中都一定能超越 Serial收集器。 Parallel Scavenge收集器:新生代收集器,使用复制算法,是并行的多线程收集器,跟其他收集器不一样,CMS等 ...
以前做Android开发的时候没怎么做笔记,也没写博客,有什么需要记的东西都是这个word放一点,那个txt放一点,现在都不知道到哪里找了,不过总归还是找到一两个word,整理了一下,便有了这篇文章,其中有自己的一些领悟,也有从互联网上摘抄的东西。 (一)关于Activity的启动问题: 1、Activity从创建到进入运行态所触发的事件onCreate()-->onStart()-->onResume() 2、从运行态到停止态所触发的事件 onPause()--->onStop() 3、从停止态到运行态所触发 ...
好歹也做了一年多的移动开发,其中大部分时间是做移动中间件,也有android和iphone的,android算是断断续续做了一年吧,iphone倒是就接触了一两个月的样子。尽管现在没做了,毕竟还是很喜欢的,隔了将近一年没碰这个东西了, ...
花了几天,终于把matlab版的人脸检测运行成功了,虽然正确率不是很高,看着各种论文上的人脸检测正确率都出奇的高,我是不怎么相信的,有的论文连基于平均脸的人脸检测正确率都能达到98%,汗啊~~ 也许真有吧,我这里 ...
基本思想是对于一个分类有一个超球,m个分类就有m个超球,求出最优的m个超球就可以了,待分类的样本与m个超球的中心比较,如果在其中一个超球里面,则属于这个超球队分类,当然还有重叠的部分,具体下面再讨论。 先看一个表达式: 第一个表达式就是球的方程。 其中表示样本点,上标m表示第m个种类,可以暂且不管m,表示第m个种类的超球中心,表示第m个种类的超球半径,表示松弛因子,对一些非常偏离球中心的点很敏感,所以要允许一些点在超球的外面,就是起这个作用的,当然要大于等于0。我们的目标是要尽量使超球小和松弛变量的和最小,因为这样才是最优的分类,因此目标函数是: 是某个常数,起 ...
论文的观点是从一个小规模的样本训练集训练得到一个初始的分类器,然后用这个分类器对大规模训练集进行修剪,修剪后得到一个很小的约减集,再用这个约减集进行训练得到最终的分类器。 文中有一个图很好的解释了他的算法: 其中H表示分类超平面,H+表示正样本的支持向量所处的超平面,H-表示负样本的支持向量所处的超平面。设样本中任意样本到H的距离为d,则,如图所示。算法分三步: 1:从所有样本中随机选取一小部分样本,在这小部分样本中训练得到一个初始的分类器 2:计算所有样本中的每个样本到刚才分类器的分类超平面的距离,如果满足,则保留此样本放进约减集,否则删除此样本。其中由自己控制 ...
Global site tag (gtag.js) - Google Analytics