赞
踩
先对每个数字统计词频,然后根据词频来找到最大几个数字即可,在这里,k如果是不固定的,我们可以用极小堆来解决这个问题来得到最大的k个频数。
具体代码如下:
class Solution: def topKFrequent(self, nums: List[int], k: int) -> List[int]: my_dict = {} for num in nums: if num in my_dict: my_dict[num] += 1 else: my_dict[num] = 1 value_set = [] for value in my_dict.values(): if len(value_set) < k: value_set.append(value) else: if value < min(value_set): pass else: value_set.remove(min(value_set)) value_set.append(value) res = [] for key in my_dict.keys(): if my_dict[key] in value_set: res.append(key) return res
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。