DEV Community

Abhishek Chaudhary
Abhishek Chaudhary

Posted on

Majority Element

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:

  • n == nums.length
  • 1 <= n <= 5 * 104
  • -109 <= nums[i] <= 109

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

class Solution:
    def majorityElement(self, nums: List[int]) -> int:
        n = len(nums)
        ctr = 1
        maj = nums[0]
        for i in range(1, n):
            if ctr == 0:
                maj = nums[i]
            if nums[i] != maj:
                ctr -= 1
            else:
                ctr += 1
        return maj
Enter fullscreen mode Exit fullscreen mode

Top comments (0)