卧薪尝胆,厚积薄发。
mode
Date: Sun Sep 09 19:48:54 CST 2018
In Category:
NoCategory
Description:
$n$
个数中某个数出现了超过
$n/2$
次,找出那个数。
$1\le n \le 500000$
空间限制
$1MB$
Solution:
空间限制
$1MB$
,#include
$<$
iostream
$>$
都不行,更不要说开数组了,既然他出现了超过
$n/2$
次,那么如果每次把两个不同的消掉,最后剩下的就是他,与是只用四个变量统计最后剩下的变量出现的个数即可。
Code:
#include<cstdio>
using namespace std;
int n,t,x,tot;
int main()
{
scanf("%d",&n);
for(int i = 1;i <= n;++i)
{
scanf("%d",&x);
if(tot == 0)
{
t = x;tot = 1;
}
else if(x == t)++tot;
else --tot;
}
printf("%d\n",t);
return 0;
}
In tag:
其他-其他
Copyright © 2020
wjh15101051
ღゝ◡╹)ノ♡