/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @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; }