面试题17.14 最小K个数
题目描述
思路:一行代码、大顶堆
一行代码
class Solution:
def smallestK(self, arr: List[int], k: int) -> List[int]:
# 一行代码
return sorted(arr)[:k]
大顶堆
class Solution:
def smallestK(self, arr: List[int], k: int) -> List[int]:
# 大顶堆
ans = []
for num in arr:
heapq.heappush(ans, -num)
if len(ans) > k:
heapq.heappop(ans)
return [-num for num in ans]