查找数组中某个出现次数超过数组长度一半的数字

来源:互联网 发布:matrix矩阵计算器安卓 编辑:程序博客网 时间:2024/04/30 08:49
/** * 数组中某个数字存在个数为数组总个数的一半以上,求这个数 * */#include <iostream>using namespace std;template<typename T>T find(T* arr,int size){int c_index;int times=0;for(int i=0;i<size;++i){if(times==0){c_index=i;times=1;}else{if(arr[c_index]==arr[i])++times;else--times;}}return arr[c_index];}int main(int argc,char* argv[]){int arr[]={1,3,5,2,2,1,1,1,3,1,1};cout<<find(arr,sizeof(arr)/sizeof(int))<<endl;return 0;}