Skip to main content

Majority Element - LeetCode Daily Challenge

Prerna Sharma

Problem Statement

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 = [3,3,2,3,2,1,2,3,2,2,3,3,2,2,2,2,1]
Output: 2

Try here before watching the video.

Video Solution

Java Code

class Solution {
    public int majorityElement(int[] nums) {
        int count = 0;
        Integer majorityElement = null;
        for(int num : nums) {
            if(count == 0) {
                majorityElement = num;
            }
            if(num == majorityElement) {
                count += 1;
            } else {
                count -= 1;
            }
        }
        return majorityElement;
    }
}

C++ Code

class Solution {
public:
    int majorityElement(vector<int>& nums) {
        int count = 0;
        int majorityElement = -1;
        for (int num : nums) {
            if (count == 0) {
                majorityElement = num;
            }
            if (num == majorityElement) {
                count++;
            } else {
                count--;
            }
        }
        return majorityElement;
    }
};

Python Code

class Solution:
    def majorityElement(self, nums: List[int]) -> int:
        count = 0
        majority_element = None
        for num in nums:
            if count == 0:
                majority_element = num
            if num == majority_element:
                count += 1
            else:
                count -= 1
        return majority_element

Javascript Code

var majorityElement = function(nums) {
    let count = 0;
    let majorityElement = null;
    for (const num of nums) {
        if (count === 0) {
            majorityElement = num;
        }
        if (num === majorityElement) {
            count++;
        } else {
            count--;
        }
    }
    return majorityElement;
};

Go Code

func majorityElement(nums []int) int {
    count := 0
    majorityElement := -1
    for _, num := range nums {
        if count == 0 {
            majorityElement = num
        }
        if num == majorityElement {
            count++
        } else {
            count--
        }
    }
    return majorityElement
}

Complexity Analysis

Time Complexity: O(N)
Space Complexity: O(1)