美文网首页
找出数组中出现次数大于N/K的所有元素

找出数组中出现次数大于N/K的所有元素

作者: 徐振杰 | 来源:发表于2019-07-31 23:42 被阅读0次

leetcode 的求众数1 和 求众数2,然后我们可以把它泛化到K

class Solution {
public:
    vector<int> majorityElement(vector<int>& nums) {
        unordered_map<int,int> um;
        int k = 3;
        for(auto num:nums){
            if(um.count(num)){
                um[num] ++;
            }
            else{
                
                if(um.size() == k-1){
                    minusOne(um);
                }else{
                    um[num] ++;
                }//cout << num<< endl;
            }
        }
        
        for(auto& u:um){
            u.second = 0;
        }
        vector<int> res;
        for(auto num:nums){
            if(um.count(num)){
                um[num]++;
                if(um[num] > nums.size()/k){
                    res.push_back(num);
                    um.erase(num);
                }
            }
        }
        return res;
        
    }
    void minusOne(unordered_map<int,int>& um){
        for(auto it = um.begin();it!=um.end();){
            (*it).second--;
            if((*it).second == 0)
                it = um.erase(it);
            else
                it++;//cout<<"-----"<< endl;
        }
    }
};

相关文章

  • 找出数组中出现次数大于N/K的所有元素

    leetcode 的求众数1 和 求众数2,然后我们可以把它泛化到K

  • 46. 主元素

    给定一个整型数组,找出主元素,它在数组中的出现次数严格大于数组元素个数的二分之一。2017.11.17 (就是...

  • 48.主元素III

    描述给定一个整型数组,找到主元素,它在数组中的出现次数严格大于数组元素个数的1/k。给出数组 [3,1,2,3,2...

  • LeetCode 169. 多数元素

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

  • leetcode--169--多数元素

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

  • 169.多数元素

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

  • python-多数元素

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

  • LintCode 主元素 III

    题目 给定一个整型数组,找到主元素,它在数组中的出现次数严格大于数组元素个数的1/k。注意事项数组中只有唯一的主元...

  • 169。多数元素(数组中出现次数大于n/2)

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

  • leetcode169-多数元素

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

网友评论

      本文标题:找出数组中出现次数大于N/K的所有元素

      本文链接:https://www.haomeiwen.com/subject/pvqfdctx.html