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.
Examples
nums = [3, 2, 3] returns 3.nums = [2, 2, 1, 1, 1, 2, 2] returns 2.Constraints
n == nums.length1 <= n <= 5 * 10^4-10^9 <= nums[i] <= 10^9Could you solve the problem in linear time and in O(1) space? (Hint: Boyer-Moore voting algorithm.)