169. Majority Element

#array #moores_voting_algorithm

Given an array find the element that appears more than n2\frac{n}{2} times ( assume such majority element always exists in the array )

Solve this problem in linear time O(n)\text{O}(n) using constant space

Intuition

  • We can use the simple voting mechanism where anything different is considered a vote against.

    • Only the majority element will have vote in his favour.

Approach

  • Track the candidate & the number of vote i.e its occurrence.

    • If we encounter an element different from the candidate decrease the vote count

    • If for the current candidate the votes become 0 replace it

  • At the end only the max occurring element will remain.

Complexity

Space Complexity
Time Complexity

O(n)\text{O}(n)

O(1)\text{O}(1)

  • No extra space is needed

Code

Last updated