#include<iostream>
using namespace std;
int moreThanHalfNum(int array[], int length)
{
if (array == nullptr || length <= 0)
{
return 0;
}
int result = array[0];
int times = 1;
for (int i = 0; i < length; ++i)
{
if (0==times)
{
result = array[i];
times = 1;
}
else if (result == array[i])
times++;
else
times--;
}
//检查该数出现的次数是否超过一般
int nums = 0;
for (int i = 0; i < length; ++i)
{
if (array[i] == result)
{
nums++;
}
}
if (nums*2<= length)
return 0;
else
return result;
}
int main()
{
int array1[] = { 2,3,4,4,5,5,5,5,5,5,5,6 };
int array2[] = { 1,2,3,4,4,4,5 };
cout << moreThanHalfNum(array1, sizeof(array1) / sizeof(array1[0])) << endl;
cout << moreThanHalfNum(array2, sizeof(array2) / sizeof(array2[0])) << endl;;
system("pause");
return 0;
}
c++:检查一个数出现次数超过数组长度的一半
于 2022-10-30 16:11:51 首次发布