topk问题前k个高频元素leetcode692(代码片段)

KeithTt KeithTt     2022-12-25     622

关键词:

给一非空的单词列表,返回前?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”之前。示... 查看详情