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
-----------------------------------------------------------------------------
以前想过sort后做,但是复杂度是O(nlogn)。也想过两两抵消来做,但是两两抵消代码怎么写呢???用一种vote的思路
class Solution:
def majorityElement(self, nums: List[int]) -> int:
candidate,vote = nums[0],0
for num in nums:
if (vote == 0):
candidate = num
vote = vote + 1 if num == candidate else vote-1
return candidate