347.Top K Frequent Elements-Python
来源:互联网 发布:三维设计教学软件 编辑:程序博客网 时间:2024/06/03 15:13
Given a non-empty array of integers, return the k most frequent elements.
For example,Given [1,1,1,2,2,3] and k = 2, return [1,2].
Note: You may assume k is always valid, 1 ? k ? number of unique elements.Your algorithm’s time complexity must be better than O(n log n), where n is the array’s size.
思路
这是一个O(n)时间复杂度的算法,优于O(nlogn)
1. 求出每个数字的频次字典
2. 按照频次,装入桶中
3. 取前K个频次
Code
Python version
class Solution(object): def topKFrequent(self, nums, k): """ :type nums: List[int] :type k: int :rtype: List[int] """ frequencyMap={} bucket=[] for n in nums: if frequencyMap.get(n)!=None: frequencyMap[n]+=1 else: frequencyMap[n]=1 bucket.append([]) bucket.append([]) for item in frequencyMap: frequency = frequencyMap[item] bucket[frequency].append(item) res=[] pos = len(bucket) - 1 while pos >= 0 and len(res)< k: if len(bucket[pos])>0: for item in bucket[pos]: res.append(item) pos-=1 return res
阅读全文
2 0
- 347. Top K Frequent Elements [medium] (Python)
- 347.Top K Frequent Elements-Python
- 347. Top K Frequent Elements
- 347. Top K Frequent Elements
- 347. Top K Frequent Elements
- 347. Top K Frequent Elements
- 347. Top K Frequent Elements
- 347. Top K Frequent Elements
- 347. Top K Frequent Elements
- 347. Top K Frequent Elements
- 347. Top K Frequent Elements
- 347.Top K Frequent Elements
- 347. Top K Frequent Elements
- 347. Top K Frequent Elements
- 347. Top K Frequent Elements
- 347. Top K Frequent Elements
- 347. Top K Frequent Elements
- 347. Top K Frequent Elements
- Java四类八种基础类型
- Android样式与主题
- innerHTML() 与html( )的区别
- 防止恶意攻击短信验证码接口方法
- KMP算法
- 347.Top K Frequent Elements-Python
- EffectiveJava(笔记九) 并发
- 使用kotlin编写第一个Android应用界面
- 兼容ie和google播放音频文件
- Python007数据类型转换
- Visual Studio Code 1.14 发布
- 数据结构预习
- java字符串的替换replace、replaceAll、replaceFirst的区别详解
- 主流网站关于CSS样式的初始化代码整理