当前位置:   article > 正文

LeetCode--347. Top K Frequent Elements(前K个高频元素)Python_topkfrequent(nums, k): python

topkfrequent(nums, k): python

题目:

给定一个数组,求出该数组中出现次数最多的前K个元素内容。要求复杂度为 nlog(n) .

解题思路:

使用哈希表(python 中字典)来存储各个元素出现的次数,键(key)为对应元素,值(value)为对应元素出现个数。再对该哈希表(字典)按照值进行排序。

代码(Python):

  1. class Solution(object):
  2. def topKFrequent(self, nums, k):
  3. """
  4. :type nums: List[int]
  5. :type k: int
  6. :rtype: List[int]
  7. """
  8. Dict = {}
  9. for i in range(len(nums)):
  10. if nums[i] in Dict:
  11. Dict[nums[i]] = Dict[nums[i]] + 1
  12. else:
  13. Dict[nums[i]] = 1
  14. output = sorted(Dict.items(),key=lambda e:e[1],reverse=True)
  15. final = []
  16. for i in range(k):
  17. final.append(output[i][0])
  18. return final


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/72826
推荐阅读
相关标签
  

闽ICP备14008679号