题目
给你一个整数数组 nums
和一个整数 k
,请你返回其中出现频率前 k
高的元素。你可以按 任意顺序 返回答案。
示例 1:
输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2]
示例 2:
输入: nums = [1], k = 1 输出: [1]
思路
借助python中字典对出现的数字进行频次统计,其次对value值进行排序,取前k个即可
代码
class Solution:
def topKFrequent(self, nums: List[int], k: int) -> List[int]:
dict = {}
for i in nums:
if i in dict.keys():
dict[i] +=1
else:
dict[i] = 1
num = sorted(dict.items(),key = lambda x:x[1],reverse = False)[:k]#注意这里容易忘记lambda的表达
result = []
for j in num:
result.append(j)
return result