leetcode[169]Majority Element

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.

class Solution {

public:

    int majorityElement(vector<int> &num) {

        int n=num.size();

        int res=0;

        int times=0;

        for(int i=0;i<n;i++)

        {

            if(times==0)

            {

                res=num[i];

                times++;

            }

            else

            {

                if(res==num[i])times++;

                else times--;

            }

        }

        return res;

    }

/**

    int majorityElement(vector<int> &num) {

        int n=num.size();

        sort(num.begin(),num.end());

        return num[n/2];

    }



    int majorityElement(vector<int> &num) {

        int n=num.size();

        map<int,int> nmap;

        for(int i=0;i<n;i++)

        {

            nmap[num[i]]++;

            if(nmap[num[i]]>n/2)return num[i];

        }

    }

*/

};

 

你可能感兴趣的:(LeetCode)