Problem
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!
}
}