码迷,mamicode.com
首页 >  
搜索关键字:数组中出现次数超过一半的数字    ( 122个结果
数组中出现次数超过一半的数字
题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。 思路: 数组中有一个数字出现的次数超过数组长度的一半,也就是说它出现的次数比其他所有数字出现次数的和还要多。因此我们可以考虑在遍历数组的时候保存两个值:一个是数组中的一个数字,一个是次数。当我们遍历...
分类:编程语言   时间:2015-05-26 23:29:03    阅读次数:285
数组中出现次数超过一半的数字
思路:保存数字中一个值和次数,当遍历到下个数字时,如果和保存数字相同次数加1,否则次数减1,当次数为0,则保存下一个数字,并把次数设为1,因为要找的数字次数超过一半,那么最后一个保存的数字一定就是要找的数字。public class MoreThanHalfNum { /** * 需找次数超过一半数字 * @param nums * @param le...
分类:编程语言   时间:2015-05-24 11:38:40    阅读次数:103
剑指offer 面试29—数组中出现次数超过一半的数字
题目: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。 解法一: 先将数组排序,然后出现次数超过一半的数字就是a[n/2+1],时间复杂度O(nlgn)。 解法二:O(n) 基本思想: 消除原理:在遍历数组的时候保存两个值:一个...
分类:编程语言   时间:2015-04-30 14:23:07    阅读次数:91
寻找数组中出现次数超过一半的数字
【题 目】数组中有一个数字的出现次数超过了该数组长度的一半,找出这个数字。 【思 路1】由于要寻找的数字的出现次数超过了数组长度的一半,所以如果将该数组排序,那么它的中位数必然是我们要寻找的数字,所以我们的任务就是对该数组进行排序,而性能最好的快速排序的时间复杂度为O(nlogn),我们可以直...
分类:编程语言   时间:2015-04-04 22:30:23    阅读次数:257
数组中出现次数超过一半的数字
?? 《剑指Offer》P163 题目:找出数组中一个出现次数超过整个数组长度一般的数字   解法一:将原问题转化为求数组的中位数,采用快速排序的思想,每一次Partition取末位为哨兵,遍历将小于、大于哨兵的数分别移至哨兵左右,最后返回哨兵在处理后的数组中的位置。不断缩小要处理的数组的长度大小,最终确定返回值为数组长度一半的元素,即为中位数。   解法二:由...
分类:编程语言   时间:2015-03-17 10:33:19    阅读次数:159
C++算法之 数组中出现次数超过一半的数字
题目描述: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。 看到这个题目,我自己想到的方法: 另外申请一个数组B,用来存放该数组A 元素出现的次数,再遍历B数组,出现次数最多的就是;但是这个如果A数组当中的元素有个是1000,那么B数组就要申...
分类:编程语言   时间:2014-12-26 14:47:30    阅读次数:237
剑指offer系列源码-数组中出现次数超过一半的数字
题目1370:数组中出现次数超过一半的数字 时间限制:1 秒内存限制:32 兆特殊判题:否提交:2844解决:846 题目描述: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。 输入: 每个测试案例包括2行: 第一行输入一个整数n(1<=n<=100000...
分类:编程语言   时间:2014-12-09 12:16:13    阅读次数:147
数组中出现次数超过一半的数字
题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2出现了5次,超过数组长度的一半,因此输出2.分析:最直接方法,先对数组进行排序,然后统计每个数出现的次数就可以找出该数字。时间复杂度为O(nlogn)..
分类:编程语言   时间:2014-12-04 16:00:42    阅读次数:282
数组中出现次数超过一半的数字
输入:一个数组.输出:数组中出现次数超过一半的数字.注:如果该数字不存在,则需对该数组进行检查,下面的程序假设所要查找的数字是存在的. 1 #include 2 #include 3 4 static int find(int *, int); 5 6 int main(int argc, ...
分类:编程语言   时间:2014-10-16 17:20:43    阅读次数:231
找出数组中出现次数超过一半的数字
题目:数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字。 解法1:将数组利用快速排序进行排序,因为数组中有一个数字出现的次数超过了数组长度的一半,则排序以后直接取得最中间的那个数字即可! 时间复杂度为:o(n*logN),因为时间主要花费在快速排序上面了! public static int find1(int[] a) { Arrays.sort(a); int mi...
分类:其他好文   时间:2014-09-23 21:21:55    阅读次数:213
122条   上一页 1 ... 9 10 11 12 13 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!