您的位置:首页 > 其它

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

2013-08-25 14:33 351 查看
/**
* 数组中某个数字存在个数为数组总个数的一半以上,求这个数
* */

#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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐