Powered by:NEFU AB-IN
给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。
你可以假设数组是非空的,并且给定的数组总是存在多数元素。
#define int long long
#undef int
#define SZ(X) ((int)(X).size())
class Solution {
public:
int majorityElement(vector<int>& nums) {
sort(nums.begin(), nums.end());
return nums[nums.size() / 2];
}
};
class Solution {
public:
int majorityElement(vector<int>& nums) {
int x = 0, votes = 0, count = 0;
for (int num : nums){
if (votes == 0) x = num;
votes += num == x ? 1 : -1;
}
// 验证 x 是否为众数
for (int num : nums)
if (num == x) count++;
return count > nums.size() / 2 ? x : 0; // 当无众数时返回 0
}
};