题目:http://pat.zju.edu.cn/contests/pat-a-practise/1054
题解:
因为题目说明了要找的数大于总数的一半,因此可以拿两个不同的数进行相抵消,这样剩下的数就是要求的数。
代码:
#include<cstdio> #include<iostream> #include<cstring> #include<cmath> #include<string> #include<vector> #include<queue> #include<stack> #include<map> #include<algorithm> using namespace std; int main() { int n,m,a,idx,num=0; scanf("%d%d",&n,&m); for(int i=0;i<n*m;++i) { scanf("%d",&a); if(num==0) { idx=a; num=1; } else { if(a==idx) ++num; else --num; } } printf("%d\n",idx); return 0; }