May Leetcode Challenge - Day 6

Problem

Majority Element

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

Solution

If we remove 2 elements from the list, the majority element still there.

class Solution {
    func majorityElement(_ nums: [Int]) -> Int {
        var stack: [Int] = []
        for ele in nums {
            guard stack.isEmpty || ele == stack.last else {
                stack.removeLast()
                continue
            }
            stack.append(ele)
        }
        return stack.last!
    }
}