1求众数(LeetCode169)
具体:给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋
的元素。
你可以假设数组是非空的,并且给定的数组总是存在众数。
class Solution:
def majorityElement(self, nums: List[int]) -> int:
data={}
n=len(nums)
for num in nums:
if num in data:
data[num] +=1
else:
data[num]=1
for key in data.keys():
if data[key] > n/2:
return key
2.求众数(LeetCode229)
具体:给定一个大小为 n 的数组,找出其中所有出现超过 ⌊ n/3 ⌋
次的元素。
说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1)。
class Solution:
def majorityElement(self, nums: List[int]) -> List[int]:
data={}
n=len(nums)
list=[]
for num in nums:
if num in data:
data[num] +=1
else:
data[num]=1
for key in data.keys():
if data[key] > n/3:
list.append(key)
return list