前 K 個高頻元素_CodingPark程式設計公園
阿新 • • 發佈:2020-12-24
技術標籤:leetcodepythonleetcode雜湊表hash
前 K 個高頻元素
給定一個非空的整數陣列,返回其中出現頻率前 k 高的元素。
示例 1:
輸入: nums = [1,1,1,2,2,3], k = 2
輸出: [1,2]
示例 2:
輸入: nums = [1], k = 1
輸出: [1]
連結:https://leetcode-cn.com/leetbook/read/learn-data-sturcture-in-7-chapters/xydnz7/
解答
pycharm
# -*- encoding: utf-8 -*-
"""
@File : qKg.py
@Contact : [email protected]
@License : (C)Copyright 2019-2020, CodingPark
@Modify Time @Author @Version @Desciption
------------ ------- -------- -----------
2020/12/23 下午7:38 AG 1.0 None
"""
def topKFrequent(nums, k):
# 雜湊表-1
hashList = {}
# 結論表-1
res = []
finnal = []
for i in nums:
if i not in hashList:
hashList[i] = 1
else:
hashList[i] = hashList[i] + 1
# 反轉
inverse = [(value, key) for key, value in hashList.items()]
fin = sorted(inverse)[-k:]
for i in fin:
finnal. append(i[1])
return finnal
if __name__ == '__main__':
nums = [1, 1, 1, 2, 2, 3]
k = 2
fin = topKFrequent(nums, k)
print('fin-> ', fin)