AcWing 52. 数组中出现次数超过一半的数字
原题链接
中等
作者:
Value
,
2020-06-27 21:38:12
,
所有人可见
,
阅读 428
法医:
class Solution {
public:
int moreThanHalfNum_Solution(vector<int>& nums) {
unordered_map<int, int> mp;
int cnt = 0, res;
for(int i = 0; i < nums.size(); i ++ ){
mp[nums[i]] ++ ;
if(cnt < mp[nums[i]]){
res = nums[i];
cnt = mp[nums[i]];
}
}
return res;
}
};
法尔
class Solution {
public:
int moreThanHalfNum_Solution(vector<int>& nums) {
int cnt = 1, res = nums[0];
for(int i = 1; i < nums.size(); i ++ ){
if(res == nums[i]) cnt ++ ;
else cnt -- ;
if(!cnt){
cnt = 1;
res = nums[i];
}
}
return res;
}
};