链接
https://leetcode-cn.com/problems/majority-element/
耗时
解题:3 min
题解:4 min
题意
给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。
你可以假设数组是非空的,并且给定的数组总是存在多数元素。
思路
用的计数法,哈希表里存数组中每个数的出现次数,当发现某一个数的出现次数 > ⌊ n/2 ⌋ 时,直接返回这个数。
时间复杂度: O ( n ) O(n) O(n)
AC代码
class Solution {
public:
int majorityElement(vector<int>& nums) {
int n = nums.size();
unordered_map<int, int> unmp;
for(auto num : nums) {
unmp[num]++;
if(unmp[num] > n/2) {
return num;
}
}
return -1;
}
};