雕刻时光

just do it……nothing impossible
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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

Posted on 2011-10-23 18:12  huhuuu  阅读(275)  评论(0编辑  收藏  举报

给你一个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);
}
}