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

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

https://www.nowcoder.com/practice/e8a1b01a2df14cb2b228b30ee6a92163

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

全部评论

相关推荐

今天 11:33
门头沟学院 Java
点赞 评论 收藏
分享
程序员小白条:学历和简历问题,你想走开发,现在很难的啦,尤其后端方向很难走,前端、测开,都会好很多,另外要等8月底和9月初去投日常
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务