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.
Credits:
Special thanks to @ts for adding this problem and creating all test cases.
Subscribe to see which companies asked this question.
题目解释:本题难度不大,首先题目定义了一个向量我们需要找出向量中的The majority element,即该元素出现得次数超过⌊ n/2 ⌋,其中n为向量的大小。我的做法就是先调用STL函数sort函数进行排序,然后遍历一次判断每个元素出现的次数并与⌊ n/2 ⌋比较大小,找出The majority element就返回這个数并结束程序.
程序如下:
class Solution {
public:
int majorityElement(vector<int>& nums) {
int n=nums.size();
int t=floor(n/2);
if(n==0) return false;
if(n==1) return nums[0];
else
{
sort(nums.begin(),nums.end());
for(int i=0;i<n;i++)
{
int count=0;
while(nums[i]==nums[i+1])
{
count++;
if(count+1>t) return nums[i];
i++;
}
}
}
}
};