提出問題:給定一個大小爲 n 的數組,找到其中的衆數。衆數是指在數組中出現次數大於 ⌊ n/2 ⌋ 的元素。你可以假設數組是非空的,並且給定的數組總是存在衆數。
解決思路:判斷衆數實則是判斷重複元素的個數。遇到重複元素首先考慮字典。字典key值存放數組元素,value存放元素出現次數,如果次數超過n/2,則爲答案。
代碼如下( ̄▽ ̄):
class Solution:
def majorityElement(self, nums: List[int]) -> int:
d = {}
for i in nums:
if i in d:
d[i]+=1
else:
d[i]=1
for key,value in d.items():
if d[key] > len(nums)/2:
return key
return 0
時間與空間複雜度: