Skip to content

Latest commit

 

History

History
 
 

169. Majority Element

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

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.

Example 1:

Input: [3,2,3]
Output: 3

Example 2:

Input: [2,2,1,1,1,2,2]
Output: 2

Companies:
Amazon, Google, Microsoft, Facebook

Related Topics:
Array, Divide and Conquer, Bit Manipulation

Solution 1.

// OJ: https://leetcode.com/problems/majority-element/
// Author: github.com/lzl124631x
// Time: O(N)
// Space: O(1)
class Solution {
public:
    int majorityElement(vector<int>& nums) {
        int ans = 0, cnt = 0;
        for (int n : nums) {
            if (ans == n) ++cnt;
            else if (cnt > 0) --cnt;
            else {
                ans = n;
                cnt = 1;
            }
        }
        return ans;
    }
};