算法设计与分析 1.2 人数过半
实验任务
输入N个数,求出现次数超过总数一半的数。数据保证存在这个数。
数据输入
第一行输入一个正整数N(N<1000),第二行输入N个数,这N个数的绝对值不超过1000000000。
数据输出
输出一个数,为出现次数超过总数一半的数。
输入示例
5
2 3 2 2 4
输出示例
2
参考代码
#include <iostream>
/*
count=1;
记录第一个数num,后面每输入一个数x,判断num==x?,是则count++;否则count--
如果count==0;则num=x;count=1;
输出num;
*/
int main()
{
int N,count=1;
long x,num;
std::cin>>N;
std::cin>>num;
for(int i=1;i<N;i++){
std::cin>>x;
if(x==num){
count++;
}
else{
count--;
if(count==0){
num=x;
count=1;
}
}
}
std::cout<<num;
}