链接
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;
}
};