您的位置:首页 > 编程语言 > Python开发

用python写leetcode【12】 -- 前K个高频元素(347)

2019-03-18 11:19 330 查看

文章目录


周末生病了,现在还没好。。。。先写点简单的。

前K个高频元素(347)

题目

给定一个非空的整数数组,返回其中出现频率前 k 高的元素。

示例 1:

输入: nums = [1,1,1,2,2,3], k = 2
输出: [1,2]
示例 2:

输入: nums = [1], k = 1
输出: [1]
说明:

你可以假设给定的 k 总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。
你的算法的时间复杂度必须优于 O(n log n) , n 是数组的大小。

思路

主要是学习了Python标准库——collections模块的Counter类,可以参考这里

代码

class Solution:
def topKFrequent(self, nums, k):
"""
:type nums: List[int]
:type k: int
:rtype: List[int]
"""
dic = collections.Counter(nums)
res = dic.most_common(k)
return [ele[0] for ele in res]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: