WHCSRL 技术网

【快乐水题】229. 求众数 II

原题:

力扣链接:229. 求众数 II

题目简述:

给定一个大小为 n 的整数数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。

解题思路

1.通过哈希表来计算出现次数
2.if(k == (num/3 + 1))这个判据比较关键,需要多验证几个测试集
3.over

C++代码:

class Solution {
public:
    vector<int> majorityElement(vector<int>& nums) {
        vector<int> vec;

        int i = 0;
        int num = nums.size();
        unordered_map<int,int> map;
        
        for(i = 0; i < num; i++)
        {
            int k = ++map[nums[i]];

            cout << "nums[]:" << nums[i]  << "    " << "k:"<<  k << endl;

            if(k == (num/3 + 1))
            {
                vec.push_back(nums[i]);
            }
        }

        return vec;
    }
};
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

力扣结果展示:

在这里插入图片描述

推荐阅读