C++数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字。

来源:互联网 发布:假人挑战风靡网络 编辑:程序博客网 时间:2024/05/03 03:40
#include <iostream>#include <bitset>using namespace std;//数组中超过出现次数超过一半的数字(数组)//题目:数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字。template<int _N>int Grial(bitset<_N> &bt,int a[]){int check[_N];for(int i=1;i<=_N;i++){int count = 0;if(!bt.test(a[i])){count++;bt.set(a[i]);check[a[i]] = count;}else{ check[a[i]]++; if(check[a[i]]>=_N/2)return a[i];}}}int main(){bitset<27> bt;int a[]={1,1,1,1,6,1,1,4,1,1,1,1,1,1,3,3,1,1,3,1,21,1,1,1,1,1};cout<<Grial<27>(bt,a)<<endl;//cout<<bt<<endl;return 0;}

0 1
原创粉丝点击