抵消法——http://www.zybbs.org/JudgeOnline/problem.php?id=2456

给你一个n个数的数列,其中某个数出现了超过n div 2次即众数,请你找出那个数。

由于数据Memory Limit: 1 MB

开数组开不了,两个不一样的时候,抵消即可

View Code
#include<stdio.h>

int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
int i,add=0,temp,bef;
for(i=0;i<n;i++)
{
scanf("%d",&temp);

if(add==0)
{
add++;
bef=temp;
}
else if(bef!=temp)
add--;
else
add++;
}printf("%d\n",bef);
}
}



你可能感兴趣的:(online)