/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param numbers int整型一维数组
* @param numbersLen int numbers数组长度
* @return int整型
*/
//本题用哈希表进行存储,将原数组的数据当作哈希表的下标,每当原数组的数据出现后,哈希表的对应下标加一,最后再遍历哈希表一遍,查看里面存储的数据是否大于规定值的一半。
int MoreThanHalfNum_Solution(int* numbers, int numbersLen ) {
// write code here
int a[10001]={0};//定义的哈希表,下标范围根据题目定的
int sum=0;
int i;
for(i=0 ;i<numbersLen;i++)
{
a[numbers[i]]++;
}
sum=numbersLen/2;
for(i=0 ;i<10001;i++)
{
if(a[i]>sum)
return i;
}
return 0;
}



京公网安备 11010502036488号