Given a non-empty array of integers, return the k most frequent elements.
给定一个非空的整数数组,返回频率最高的k个元素
Example 1:
Input: nums = [1,1,1,2,2,3], k = 2
Output: [1,2]
Example 2:
Input: nums = [1], k = 1
Output: [1]
Note:
1、You may assume k is always valid, 1 ≤ k ≤ number of unique elements.
2、Your algorithm’s time complexity must be better than O(n log n), where n is the array’s size.
Solution:
Python
import collections
class Solution:
def topKFrequent(self, nums, k):
"""
:type nums: List[int]
:type k: int
:rtype: List[int]
"""
count = collections.Counter(nums)
countkeys = sorted(count.keys(),key = lambda x:count[x],reverse = True)
return countkeys[:k]