题目描述:
给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。
你可以假设数组是非空的,并且给定的数组总是存在众数。
示例 1:
输入: [3,2,3]
输出: 3
示例 2:
输入: [2,2,1,1,1,2,2]
输出: 2
个人思路:
大半夜爬起来,不想多写代码,大概试了十组值,发现,排序后众数一定在中间,那就很简单了,数组排序然后取中间值。回头在考虑看看有没有别的方法。
代码实现:
class Solution {
public:
int majorityElement(vector<int>& nums) {
sort(nums.begin(), nums.end());
return nums[nums.size() / 2];
}
};
//1 1 2 2 2 3
//2 2 3 3 3 4
//次数大于n/2,那排序后众数在中间
结果显示: