Easy
1642142FavoriteShare
Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋
times.
You may assume that the array is non-empty and the majority element always exist in the array.
Example 1:
Input: [3,2,3] Output: 3
Example 2:
Input: [2,2,1,1,1,2,2] Output: 2
Accepted
384,017
Submissions
729,065
C++:
计数法:
/*
* @Author: SourDumplings
* @Link: https://github.com/SourDumplings/
* @Email: changzheng300@foxmail.com
* @Description:
* @Date: 2019-04-27 21:03:44
*/
class Solution
{
public:
int majorityElement(vector<int> &nums)
{
unordered_map<int, int> umap;
int res = nums[0], maxTime = 0;
for (auto &i : nums)
{
++umap[i];
if (umap[i] > maxTime)
{
maxTime = umap[i];
res = i;
}
}
return res;
}
};
排序选出中间数法:
/*
* @Author: SourDumplings
* @Link: https://github.com/SourDumplings/
* @Email: changzheng300@foxmail.com
* @Description:
* @Date: 2019-04-27 21:03:44
*/
class Solution
{
public:
int majorityElement(vector<int> &nums)
{
sort(nums.begin(), nums.end());
return nums[nums.size() / 2];
}
};