原题:

​力扣链接: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;
}
};

力扣结果展示:

【快乐水题】229. 求众数 II_算法