数组中出现次数超过数组长度一半的 数字题目描述:
给定 一个数组,找到数组中出现次数超过数组长度一半的数字,如数组 a[]= {0,1,2,1,1},输出为1
分析:
1,可以使用伴随数组b,遍历数组a,将值作为数组b的下标,将次数作为值,然后遍历数组b,找到次数超过一半的值,然后输出。时间复杂度为O(N),不过要增加空间复杂度。
2,我们可以先对数组进行排序,因为某个数字出现次数超过一半,...
分类:
编程语言 时间:
2016-05-12 21:58:20
阅读次数:
203
这几个问题都可以用一个辅助数组来帮助求解,也有的称为是伴随数组。
1、素数
筛选法求素数:把从1开始的、某一范围内的正整数从小到大顺序排列, 1不是素数,首先把它筛掉。剩下的数中选择最小的数是素数,然后去掉它的倍数。依次类推,直到筛子为空时结束。
void prime(int n)
{
vector isPrime(n+1,true);
int i;
for (i = 2;i*i <=...
分类:
其他好文 时间:
2014-09-09 13:06:48
阅读次数:
328