解题思路:
这道题目,我们可以维护一个key和一个count,key用来表示一个临时的字符,如果接下来的数字是这个数字,那么我们count+1,如果不是count-1,如果count=0的时候,接下里的数字还与key不相同,那么key为这个新的num,以这样的逻辑,一次遍历即可找到众数。
具体代码如下:
class Solution:
def majorityElement(self, nums: List[int]) -> int:
#keep a count
#keep a key
count = 0
key = 'start'
for num in nums:
if count == 0 and key != num:
key = num
count += 1
elif count == 0 and key == num:
count += 1
elif count > 0 and key == num:
count += 1
elif count > 0 and key != num:
count -= 1
return key