169. Majority Element

Problem:

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.

 

A possible solution:

class Solution {
public:
    int majorityElement(vector<int>& nums) {
        int majority;
        int cnt=0;
        for(int i=0;i<nums.size();i++)
        {
            if(cnt == 0)
            {
                majority = nums[i];
                cnt ++;
            }
            else
            {
                majority == nums[i]?cnt++:cnt--;
                if(cnt>nums.size()/2+1) return majority;
            }
        }
        return majority;
    }
};

  

posted @ 2016-06-01 18:51  liu_ty10  阅读(135)  评论(0编辑  收藏  举报