关键词:
给一非空的单词列表,返回前?k?个出现次数最多的单词。
返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率,按字母顺序排序。
示例:
输入: ["i", "love", "leetcode", "i", "love", "coding"], k = 2
输出: ["i", "love"]
解析: "i" 和 "love" 为出现次数最多的两个单词,均为2次。
注意,按字母顺序 "i" 在 "love" 之前。
假定 k 总为有效值, 1 ≤ k ≤ 集合元素数。
输入的单词均由小写字母组成。
代码如下:
class Solution:
def topKFrequent(self, nums, k):
"""
:type nums: List[int]
:type k: int
:rtype: List[int]
"""
count = collections.Counter(nums)
# return heapq.nlargest(k, count.keys(), key=count.get)
return count.most_common(k)
Counter 继承自 dict,默认是降序。
most_common 是基于 heapq 实现的。
合并多个 Counter 对象
count2 = Counter(nums)
count.update(count2)
print(count)
实例:词频统计,取出前5
with open(‘example.txt‘) as f:
txt = f.read()
w = re.split(‘\W+‘, txt)
print(w)
c2 = Counter(w)
res = c2.most_common(5)
print(res)
# [(‘a‘, 21), (‘the‘, 16), (‘to‘, 15), (‘and‘, 12), (‘Service‘, 8)]
参考:
https://leetcode-cn.com/problems/top-k-frequent-words/
https://docs.python.org/3/library/collections.html#counter-objects
https://docs.python.org/3/library/heapq.html
力扣练习006---前k个高频单词(692)(代码片段)
题目描述:https://leetcode-cn.com/problems/top-k-frequent-words/submissions/ 给一非空的单词列表,返回前 k 个出现次数最多的单词。返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率,按字母顺序排... 查看详情
leetcode刷题100天—692.前k个高频单词(优先队列)—day17(代码片段)
...母顺序排序。示例1:输入:["i","love","leetcode","i", 查看详情
leetcode——前k个高频元素(代码片段)
1.前K个高频元素(1)优先队列classSolutionpublicint[]topKFrequent(int[]nums,intk)Map<Integer,Integer>occurrences=newHashMap<Integer,Integer>();for(intnum:nums)occurrences.put(num,o 查看详情
leetcode0347.前k个高频元素(代码片段)
【LetMeFly】347.前K个高频元素力扣题目链接:https://leetcode.cn/problems/top-k-frequent-elements/给你一个整数数组nums和一个整数k,请你返回其中出现频率前k高的元素。你可以按任意顺序返回答案。 示例1:输入:nums=[1,1,1,2,2,3],k... 查看详情
[leetcode]347.前k个高频元素(堆)(代码片段)
...间复杂度必须优于O(nlogn),?n?是数组的大小。来源:力扣(LeetCode)链接:https://leetcode-c 查看详情
leetcode之374前k个高频元素golang(代码片段)
题目描述给定一个非空的整数数组,返回其中出现频率前*k*高的元素。示例1:输入:nums=[1,1,1,2,2,3],k=2输出:[1,2]示例2:输入:nums=[1],k=1输出:[1]提示:你可以假设给定的k总是合理的,且1≤k≤数组中不相同的元素的个数。你的算法的时... 查看详情
leetcode刷题(130)~前k个高频元素最小堆|快速排列难点!
题目描述给定一个非空的整数数组,返回其中出现频率前k高的元素。示例1:输入:nums=[1,1,1,2,2,3],k=2输出:[1,2]示例2:输入:nums=[1],k=1输出:[1]提示:你可以假设给定的k总是合理的,且1≤k≤数组中不相同的元素的个数。你的算法的时间... 查看详情
692.前k个高频单词(堆)(代码片段)
2019-12-2814:46:41 熟练掌握C++sort函数的用法以及如何定义cmp函数 classSolutionpublic:staticboolcmp(constpair<string,int>&p1,constpair<string,int>&p2)if(p1.second>p2.second)returntrue 查看详情
前k个高频单词(代码片段)
...xff0c;按字母顺序排序。示例1:输入:[“i”,“love”,“leetcode”,“i”,“love”,“coding”],k=2输出:[“i”,“love”]解析:“i”和“love”为出现次数最多的两个单词& 查看详情
⭐算法入门⭐《哈希表》中等04——leetcode347.前k个高频元素(代码片段)
文章目录一、题目1、题目描述2、基础框架3、原题链接二、解题报告1、思路分析2、时间复杂度3、代码详解三、本题小知识四、加群须知一、题目1、题目描述 给你一个整数数组nums和一个整数k,请你返回其中出现频率前k... 查看详情
leetcode刷题100天—347.前k个高频元素(优先队列)—day16(代码片段)
前言:作者:神的孩子在歌唱大家好,我叫运智给你一个整数数组nums和一个整数k,请你返回其中出现频率前k高的元素。你可以按任意顺序返回答案。示例1:输入:nums=[1,1,1,2,2,3],k=2输出:[1,2]示例2:输入:nums=[... 查看详情
topk问题详解(代码片段)
TopK问题详解力扣17.14.最小K个数力扣347.前K个高频元素力扣373.查找和最小的K对数字力扣17.14.最小K个数classSolutionpublicint[]smallestK(int[]arr,intk)int[]ret=newint[k];if(arr.length==0||k==0)returnret;Queue<Integer& 查看详情
347topkfrequentelements前k个高频元素
...时间复杂度必须优于O(nlogn),n是数组的大小。详见:https://leetcode.com/problems/top- 查看详情
leetcode前k个高频元素(堆)(代码片段)
目录1.题目要求:给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。2.解题思路:代码展示:1.题目要求:给你一个整数数组 nums 和一个整数 k ... 查看详情
[leetcode]topkfrequentwords前k个高频词
Givenanon-emptylistofwords,returnthe k mostfrequentelements.Youranswershouldbesortedbyfrequencyfromhighesttolowest.Iftwowordshavethesamefrequency,thenthewordwiththeloweralphabeticalord 查看详情
leetcode.215-数组中的第k个最大元素(代码片段)
题目在未排序的数组中找到第k个最大的元素。请注意,你需要找的是数组排序后的第k个最大的元素,而不是第k个不同的元素。示例??输入:[3,2,3,1,2,4,5,5,6]和k=4??输出:4TopK问题是一道高频面试题!解法一:排序+查找由于数组是... 查看详情
leetcode|215.数组中的第k个最大元素(代码片段)
原题(Medium): 在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第k个最大的元素,而不是第k个不同的元素。 说明: 你可以假设k总是有效的,且1≤k≤数组的长度。 思路:... 查看详情
前k个高频单词(代码片段)
...xff0c;按字母顺序排序。示例1:输入:[“i”,“love”,“leetcode”,“i”,“love”,“coding”],k=2输出:[“i”,“love”]解析:“i”和“love”为出现次数最多的两个单词,均为2次。注意,按字母顺序“i”在“love”之前。示... 查看详情