← All problems

169. Majority Element

EasyOpen on LeetCodeProblem statement

Problem Statement

169. Majority Element

Easy


Given an array nums of size n, return the majority element.

The majority element is the element that appears more than ⌊n / 2⌋ times. You may assume that the majority element always exists in the array.

 

Example 1:

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

Example 2:

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

 

Constraints:

 

Follow-up: Could you solve the problem in linear time and in O(1) space?

Java

Source file
class Solution {
    public int majorityElement(int[] nums) {
        int major = -1, freq = 0;
        for (int i : nums) {
            if (major == i)
                freq++;
            else {
                freq--;
                if (freq < 0) {
                    freq = 0;
                    major = i;
                }
            }
        }
        return major;
    }
}