题解 | #数组中出现次数超过一半的数字#
数组中出现次数超过一半的数字
http://www.nowcoder.com/practice/e8a1b01a2df14cb2b228b30ee6a92163
C语言求数组超过一半的数字
解题思路
这道题 使用hash,遍历的过程中计算每一个元素的累计值,由于只有一个元素数量超过一半,同时判断一下总数即可
*
* @param numbers int整型一维数组
* @param numbersLen int numbers数组长度
* @return int整型
*
* C语言声明定义全局变量请加上static,防止重复定义
*/
int MoreThanHalfNum_Solution(int* numbers, int numbersLen ) {
// write code here
int hash[10000]={0};
for(int i=0;i<numbersLen;i++){
hash[numbers[i]]++;
if(hash[numbers[i]]>(numbersLen/2))
return numbers[i];
}
return -1;
}