#include<iostream> #include<algorithm> using namespace std; //定义存放数据的数组,设值为全局变量 const int M=10000000+5; int a[M]; int main() { int T; //输入T组数据 cin >> T; while(T--) { int n; cin >> n; //输入数据 for(int i=0; i<n; ++i) { cin >> a[i]; } //对输入的数组进行排序 sort(a,a+n); //找出现次数大于n/2的id号 int cnt=1, value=a[0]; for(int i=1; i<n; ++i) { if(a[i]==value) { cnt++; //判断cnt是否符合条件 if(cnt>n/2) { cout << value << endl; break; } }else{ value=a[i]; cnt=1; } } } return 0; }
#include<stdio.h> const int M=10000000+5; int a[M]; int search(int A[], int length) { int k, j=0; for(int i=0; i<length; ++i) { if(j==0) { k=A[i]; } if(k==A[i]) { ++j; }else{ --j; } } return k; } int main() { int T; scanf("%d",&T); while(T--) { int n; scanf("%d",&n); for(int i=0; i<n; ++i) { scanf("%d",&a[i]); } //找出出现次数大于一半的ID号 printf("%d\n",search(a,n)); } }
原文地址:http://blog.csdn.net/computer_liuyun/article/details/42062223