zoukankan      html  css  js  c++  java
  • LeetCode No.169

    给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。

    你可以假设数组是非空的,并且给定的数组总是存在众数。

    示例 1:

    输入: [3,2,3]
    输出: 3
    示例 2:

    输入: [2,2,1,1,1,2,2]
    输出: 2

    解答思路:利用 undered_map 散列哈希表来求解,一个用于放置向量中的数,另外一个用于放置出现的次数。

    需要说明:map 和 unorder_map 存在较大的差别, unorder_map 效率更高,是散列哈希表, 而 map 在插入数据时会自动排好序。

    //169
    int majorityElement(vector<int>& nums)
    {
        if(nums.empty()) return 0;
        if(nums.size()==1) return nums[0];
        unordered_map<int,short> m;
        vector<int>::iterator it;
        size_t size = nums.size();
        for(it=nums.begin();it!=nums.end();it++)
        {
            if(m.find(*it)!=m.end())
            {
                m[*it]++;
                if(m[*it]>size/2) return *it;
            }
            else m[*it]=1;
        }
        return 0;
    }//169
  • 相关阅读:
    WSL+vscode安装rust注意事项
    几种判断质数的算法
    select被遮挡问题
    idea工具使用
    docker部署nexus服务
    docker部署nacos
    springcloudAlibaba整合nacos
    Navicat_Premium_v15 激活
    CF295D Solution
    CF351B Solution
  • 原文地址:https://www.cnblogs.com/2Bthebest1/p/11181959.html
Copyright © 2011-2022 走看看