Find number which appears more than half times
of array length.
分类:
移动开发 时间:
2014-05-27 00:16:48
阅读次数:
339
出题:数组中有一个数字出现的次数超过了数组长度的一半,请找出这个数字;分析:解法1:首先对数组进行排序,时间复杂度为O(NlogN),由于有一个数字出现次数超过了数组的一半,所以如果二分数组的话,划分元素肯定就是这个数字;解法2:首先创建1/2数组大小的Hash
Table(哈希表可以替代排序时间,...
分类:
其他好文 时间:
2014-05-26 23:23:48
阅读次数:
453
#includeusing namespace std;bool solver(const int
a[],const int n, int & num){ if(NULL == a || 0>= n) return false;
////注意,是小写~ int count = 0; ...
分类:
其他好文 时间:
2014-05-19 12:11:20
阅读次数:
335
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入数组:{1,3,3,2,3,2,3,3,2}。由于2在数组中出现了5次,超过数组长度的一半,因此要输出2。有两种解法:第一种方法是基于快速排序算法的原理,边排序边判断是否符合输出条件。这种方法的代码我因为没有保存,在电脑蓝屏之后全...
分类:
其他好文 时间:
2014-05-10 22:45:25
阅读次数:
291
人的核心竞争力超过一半来自重要而不紧急的事情:1、读书,特别读那些非实用性的书增加自己的思维角度和阅读视野,也可以听各种视频节目,比如微信自媒体等等;2、锻炼身体,笑到最后的得有一副好身体;在一线城市,平常聚会组团可能玩不起来,但是就个人来说,除了健身房,还有跑步和跳绳,尤其是跳绳是锻炼全身运动的比较合适的运动。3、与智者交谈,提问,思考,常作笔记;如果平常生活中碰不到智者,可以在网络上面,论坛上...
分类:
其他好文 时间:
2014-05-09 14:05:11
阅读次数:
279
29:数组中出现次数超过一半的数字 方法a. 排序取中 O(nlogn) 方法b.
partition 函数分割找中位数 >=O(n) 方法 c. 设计数变量,扫描一遍。 O(n)#include int findNumber(int
data[], unsigned length){/* if(c...
分类:
其他好文 时间:
2014-05-02 19:47:41
阅读次数:
535
29. 数组中出现次数超过一半的数字. 方法a. 排序取中 O(nlogn). 方法b.
partition 函数分割找中位数 >=O(n). 方法c. 设计数变量,扫描一遍。 O(n).#include bool Invalid_Input
= false;int getNumber(int da...
分类:
其他好文 时间:
2014-05-02 10:46:15
阅读次数:
340