题解 | #数组中出现次数超过一半的数字#

数组中出现次数超过一半的数字

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;
}
全部评论

相关推荐

10-05 23:02
东北大学 Java
我说句实话啊:那时候看三个月培训班视频,随便做个项目背点八股,都能说3 40w是侮辱价
点赞 评论 收藏
分享
牛客771574427号:恭喜你,华杰
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务