【LeetCode】169. Majority Element

    xiaoxiao2021-03-25  108

    题目:

    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;     } };

    转载请注明原文地址: https://ju.6miu.com/read-17398.html

    最新回复(0)