【LeetCode】169. Majority Element

来源:互联网 发布:歌德巴赫猜想c语言 编辑:程序博客网 时间:2024/05/16 13:41

题目:

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.


思路:排序之后再计数,每次循环到[i]与[i-1]不相同时,就比较并留下计数较大的。要注意循环到最后一个元素时的处理,我单独列出来了。还要注意循环从1开始,不能从0开始,这样才能[i]与[i-1]比较,否则越界。


我的答案:

class Solution {
public:
    int majorityElement(vector<int>& nums) {
        int ma=0,a=1,result=nums[0];
sort(nums.begin(),nums.end());
for(int i=1;i<nums.size();i++)
{
if(nums[i]==nums[i-1]&&i!=nums.size()-1)
a++;
else if(nums[i]==nums[i-1]&&i==nums.size()-1)
{
a++;
if(a>ma)
{
result=nums[i-1];
ma=a;
}
}
else
{
if(a>ma)
{
result=nums[i-1];
ma=a;
}
a=1;
}
}
return result;
    }
};


0 0
原创粉丝点击