//数组中有一个数字出现的次数超过了数组长度的一半,请找出这个数字。(腾讯)
//思路:这个数字出现个数一定大于其他全部数字出现个数之和。
#include<iostream>
#include<stdio.h>
using namespace std;
int function(int data[],int length)
{
int currentAxis;
int currentNum=0;
for(int i=0;i<length;i++)
{
if(currentNum==0)
{
currentAxis=data[i];
currentNum=1;
}
else
{
if(currentAxis==data[i])
currentNum++;
else currentNum--;
}
}
return currentAxis;
}
void main()
{
int data[]={0,1,2,1,1};
int axis=function(data,5);
cout<<axis<<endl;
}
数组中有一个数字出现的次数超过了数组长度的一半,请找出这个数字。
最新推荐文章于 2022-02-21 20:26:47 发布