牛客题霸--数组中出现次数超过一半的数字

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

https://www.nowcoder.com/practice/e8a1b01a2df14cb2b228b30ee6a92163?tpId=117&&tqId=34995&rp=1&ru=/ta/job-code-high&qru=/ta/job-code-high/question-ranking

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

题目链接

Solution

求出现次数大于一半的数。
直接开一个map,统计每个数字出现的个数,最后扫一遍原数组,找到出现次数大于一半的数字即可。

Code

class Solution {
public:
    int MoreThanHalfNum_Solution(vector<int> numbers) {
        map<int,int> cnt;
        for (int i = 0; i < (int)numbers.size(); ++i) cnt[numbers[i]] ++;
        for (int i = 0; i < (int)numbers.size(); ++i) 
            if (cnt[numbers[i]] * 2 > (int)numbers.size()) {
                return numbers[i];
            }
        return 0;
    }
};
全部评论

相关推荐

熊大不大:微信也是华为旗下吧,我看我朋友也是华为工牌写wx
点赞 评论 收藏
分享
08-12 09:16
Java
牛客38753147...:后端的竞争者一届比一届卷,前两年非985还很多,一段大厂实习就已经非常优秀了。 现在985硕多如狗,人手一段大厂实习,而且腾讯和百度今年都宣布实习扩招了一倍不止,越来越多的人从本一研一就开始刷实习,信息差也基本没有了。可以预见的,以后只会越来越卷。
投递快手等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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