剑指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 江西

相关推荐

jack_miller:杜:你不用我那你就用我的美赞臣
点赞 评论 收藏
分享
10-17 12:16
同济大学 Java
7182oat:快快放弃了然后发给我,然后让我也泡他七天最后再拒掉,狠狠羞辱他一把😋
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务