/**
* 数组中某个数字存在个数为数组总个数的一半以上,求这个数
* */
#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;
}
查找数组中某个出现次数超过数组长度一半的数字
最新推荐文章于 2022-03-30 18:00:33 发布