主元素(Majority Number)定义为数组中出现次数严格超过一半的数。找到这个数。要求使用O(1)的额外空间和O(n)的时间。
进阶1:如果数组中存在且只存在一个出现次数严格超过1/3的数,找到这个数。要求使用O(1)的额外空间和O(n)的时间。
进阶2:如果数组中存在且只存在一个出现次数严格超过1/k的数,找到这个数。要求使用O(k)的额外空间和O(n)的时间...
分类:
编程语言 时间:
2015-05-12 15:43:48
阅读次数:
130
原文出处:wizcabbit的博客欢迎分享原创到伯乐头条HTTP Archieve有个统计,图片内容已经占到了互联网内容总量的62%,也就是说超过一半的流量和时间都用来下载图片。从性能优化的角度看,图片也绝对是优化的热点和重点之一,Google PageSpeed或者Yahoo的14条性能优化规则无...
分类:
Web程序 时间:
2015-05-11 08:47:54
阅读次数:
209
转!http://blog.csdn.net/dabusideqiang/article/details/3827166111、求旋转数组的最小数字题目:输入一个排好序的数组的一个旋转,输出旋转数组的最小元素。分析:数组的旋转:把一个数组最开始的若干个元素搬到数组的末尾。例如数组{3, 4, 5, ...
分类:
编程语言 时间:
2015-05-03 15:59:41
阅读次数:
498
题目:给一数组,如果存在众数,找出众数,即超过一半的数,如果不存在,返回-1.思路:众数:众数出现的次数大于其他所有数出现次数之和方法1:hashmap通过遍历数组,将数组每个数都通过hashmap来统计其出现的个数,如果某个数个数超过一半,则为众数。时间空间复杂度均为O(n)方法2:Moore V...
分类:
编程语言 时间:
2015-05-03 11:58:33
阅读次数:
229
#include
#include
using namespace std;
//数组中超过出现次数超过一半的数字(数组)
//题目:数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字。
template
int Grial(bitset &bt,int a[])
{
int check[_N];
for(int i=1;i<=_N;i++)
{
int count = 0...
分类:
编程语言 时间:
2015-05-02 13:56:30
阅读次数:
173
题目:
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为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
我们知道,水王问题:有N个数,其中有一个数出现超过一半,要求在线性时间求出这个数。那么,我的问题是,加强版水王:有N个数,其中有一个数刚好出现一半次数,要求在线性时间内求出这个数。因为,很明显,如果是刚好出现一半的话,如此例: 0,1,2,1 :方案一:根据上面的例子,最后我们可能会输出不是符合条件...
分类:
其他好文 时间:
2015-04-28 17:51:32
阅读次数:
155
#include
using namespace std;
void find(int A[],int length)
{
int times=0;
int i=0;
int temp;
for(;i
{
if(times==0)
{
temp=A[i];
times=1;
}
else
{
if(A[i]==temp)
times++;
else
times...
分类:
编程语言 时间:
2015-04-12 17:48:53
阅读次数:
125
是数组中超过一半数目问题的升级版,但万变不离其中 声明一个time数组和candidate数组,长度为3,分别存放三个数的次数和数字 首先次数声明为0,数字声明为不存在的数,这里暂时声明为-1,其实应该声明为一个不存在的数字 然后遍历数组 如果该数是第一个candidate,第一个candida.....
分类:
编程语言 时间:
2015-04-05 20:16:03
阅读次数:
121
两种方法,一个是基于快排的partition函数,但这种存在一个问题,如果数组{1,1,1,1,1,1,2,3,4,5,6},这样的话,partition返回的数字为2所对应的index 所以这种方法需要添加一个判定数组中是否存在超过一半数字的数 另外一种是,首先认为第一个数就是我们想找的,设置一个...
分类:
编程语言 时间:
2015-04-05 20:12:23
阅读次数:
162