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
Example 1
Input: nums = [3,2,3]
Output: 3
Example 2
Input: nums = [2,2,1,1,1,2,2]
Output: 2
Example 3
Input: nums = [1]
Output: 1
Constraints
1 <= nums.length <= 5 * 10^4-10^9 <= nums[i] <= 10^9- The majority element always exists in the array
Follow-up
Could you solve this in linear time with O(1) space complexity?