剑指offer:数组中出现次数超过一半的数字

用哈希表unmp,存着每个数出现的次数,for循环遍历整个数组,如果数相同就+1放到unmp中,当unmp[numbers[i]]的值大于整个数组一半的时候就输出此时的数!!!(挺简单)

#include <unordered_map>
class Solution{
public:
int MoreThanHalfNum_Solution(vector<int> numbers){
    unordered_map<int, int> unmp;
    int len = numbers.size();

    for(int i =0;i<len;++i){
        unmp[numbers[i]]++;
        if(unmp[numbers[i]]>len/2) return numbers[i];

    }
    return 0;

}
};

#剑指offer##23届找工作求助阵地#
全部评论
如果升级难度,O(1)空间复杂度呢
点赞 回复 分享
发布于 2023-04-07 15:55 湖南
投票法最佳
点赞 回复 分享
发布于 2023-04-09 14:15 江西

相关推荐

头像
11-18 16:08
福州大学 Java
影流之主:干10年不被裁,我就能拿别人一年的钱了,日子有盼头了
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务