Leetcode 229. Majority Element II | | Leetcode 229. Majority Element II 文章作者:Tyan博客:noahsnail.com | CSDN | 简书 1. Description 2. Solution Version 1 12345678910111213141516class Solution {public: vector<int> majorityElement(vector<int>& nums) { int limit = nums.size() / 3; vector<int> result; unordered_map<int, int> m; for(int num : nums) { m[num]++; if(m[num] > limit) { m[num] = INT_MIN; result.push_back(num); } } return result; }}; Version 2 12345678910111213141516171819202122232425262728293031323334353637383940414243444546class Solution {public: vector<int> majorityElement(vector<int>& nums) { vector<int> result; int limit = nums.size() / 3; int candidate1 = 0, candidate2 = 0; int count1 = 0, count2 = 0; for(int num : nums) { if(num == candidate1) { count1++; } else if(num == candidate2) { count2++; } else if(count1 == 0) { candidate1 = num; count1 = 1; } else if(count2 == 0) { candidate2 = num; count2 = 1; } else { count1--; count2--; } } count1 = 0; count2 = 0; for(int num : nums) { if(num == candidate1) { count1++; } else if(num == candidate2) { count2++; } } if(count1 > limit) { result.push_back(candidate1); } if(count2 > limit) { result.push_back(candidate2); } return result; }}; Reference https://leetcode.com/problems/majority-element-ii/description/ 如果有收获,可以请我喝杯咖啡! 赏 微信打赏 支付宝打赏