首页 > 其他 > 详细

347.前k个高频元素-counter(leetcode)

时间:2020-03-21 18:26:53      阅读:54      评论:0      收藏:0      [点我收藏+]

给定一个非空的整数数组,返回其中出现频率前 高的元素。

技术分享图片

 

 

法1)  使用 Counter 的most_common(k) 方法

from collections import Counter
class Solution:
    def topKFrequent(self, nums: List[int], k: int) -> List[int]:
        counter_nums = Counter(nums)
        topK = counter_nums.most_common(k)
        res = [item[0] for item in topK]
        return res
 
还有常用的方法有:
  counter.update()   在原有的nums基础上,再加上一些new_nums  两个hash table做加法可查看 https://www.cnblogs.com/hycstar/p/9345751.html
  counter.sbstract()  在原有的nums上做减法 https://www.cnblogs.com/keke-xiaoxiami/p/8553076.html
  counter.elements()  列出nums https://www.cnblogs.com/keke-xiaoxiami/p/8553076.html
  
  counter.keys()
  counter.values()
  dict(counter) 
  list(counter) 与counter.elements()相似
 
法2) 官方答案 用 heap.nlargest()   回头再好好看看heap怎么用
  
class Solution:
    def topKFrequent(self, nums, k):

    count = collections.Counter(nums)
    return heap.nlargest(k,count.keys(),key = count.get())
  
  
  

347.前k个高频元素-counter(leetcode)

原文:https://www.cnblogs.com/ChevisZhang/p/12540681.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!