您的位置:首页 > 产品设计 > UI/UE

LeetCode 347. Top K Frequent Elements - 频率最高的k个数

2017-11-02 18:42 585 查看
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.

本意应该是取考堆或优先队列的知识,但是C++或Python都对优先队列做了很好的实现,因此可以直接使用。

class Solution(object):
def topKFrequent(self, nums, k):
"""
:type nums: List[int]
:type k: int
:rtype: List[int]
"""
from collections import Counter
most_k = Counter(nums).most_common(k)

return [x for x, _ in most_k]


counter 的 most_common()就是基于heapq实现的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode