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

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

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

相关推荐

今年会有offer吗:一眼代码相似度过高
投递华为等公司10个岗位
点赞 评论 收藏
分享
点赞 评论 收藏
分享
兄弟们,迷茫了已经,双非本难道真就低人五等吗,为啥我投用友都是直接不合适大佬们不是说用友点击就送吗
凌笑(EN:Wichelns):老哥,我之前就在用友实习。点击就送,那是实习生+分公司(搞业务的)。如果你投的是用友总部,也就是搞技术研发的,那个是比较难的。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务