博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode347. Top K Frequent Elements(思路及python解法)
阅读量:2241 次
发布时间:2019-05-09

本文共 704 字,大约阅读时间需要 2 分钟。

Given a non-empty array of integers, return the k most frequent elements.

Example 1:

Input: nums = [1,1,1,2,2,3], k = 2Output: [1,2]

Example 2:

Input: nums = [1], k = 1Output: [1]

首先是统计每个数字出现次数。可以用collections.Counter,也可以自己写方法。

然后将次数做为key,数字做为value。同样的次数可能有多个数字,所以要用list保存。

最后就是按数字的出现次数进行排序。返回前k个即可。

class Solution:    def topKFrequent(self, nums: List[int], k: int) -> List[int]:        fre={}        nfre=collections.defaultdict(list)        res=[]        for num in nums:            fre[num]=fre.get(num, 0)+1        for key,v in fre.items():            nfre[v].append(key)                for i in range(len(nums),0,-1):            if i in nfre:                res.extend(nfre[i])        return res[:k]

 

转载地址:http://ucrbb.baihongyu.com/

你可能感兴趣的文章
【MyBatis学习11】MyBatis中的延迟加载
查看>>
【MyBatis学习12】MyBatis中的一级缓存
查看>>
【MyBatis学习13】MyBatis中的二级缓存
查看>>
【MyBatis学习14】MyBatis和Spring整合
查看>>
【MyBatis学习15】MyBatis的逆向工程生成代码
查看>>
Java 中 final、finally 和 finalize 使用总结
查看>>
volatile关键字解析
查看>>
单例模式的八种写法比较
查看>>
比较常见的数据库SQL面试题以及答案
查看>>
MySQL与Oracle的区别
查看>>
关于Oracle数据库优化的几点总结
查看>>
69道Spring面试题和答案
查看>>
40个Java多线程问题总结
查看>>
Oracle数据库面试题
查看>>
java面试中的智力题
查看>>
本地如何连接hbase数据库
查看>>
Maven出错-Missing artifact org.apache.openejb:openejb-core:jar:4.1.0-SNAPSHOT:test
查看>>
dubbo配置文件xml校验报错
查看>>
eclipse生成export生成jar详解
查看>>
oracle 模糊查询忽略大小写
查看>>