LeetCode每日一题(2021.10.22)【EASY】
给定一个大小为 n 的整数数组,找出其中所有出现超过【 n/3】 次的元素。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/majority-element-ii
示例 1:
输入:[3,2,3]
输出:[3]
示例 2:
输入:nums = [1]
输出:[1]
示例 3:
输入:[1,1,1,3,3,2,2,2]
输出:[1,2]
基础:哈希统计
class Solution:
def majorityElement(self, nums: List[int]) -> List[int]:
nums_dict = {}
critical = len(nums)/3
for num in nums:
if num not in nums_dict:
nums_dict[num] = 1
else:
nums_dict[num] += 1
res = {k: v for k, v in nums_dict.items() if v > critical}
return list(res)
优化可以考虑 摩尔投票