Skip to content

Latest commit

 

History

History
15 lines (14 loc) · 538 Bytes

85. 最小的k个数.md

File metadata and controls

15 lines (14 loc) · 538 Bytes

输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。

class Solution:
    def getLeastNumbers(self, arr: List[int], k: int) -> List[int]:
        if k == 0:
            return list()
        hp = [-x for x in arr[:k]]
        heapq.heapify(hp)
        for i in range(k, len(arr)):
            if hp[0] < -arr[i]:       
                heapq.heapreplace(hp, -arr[i])
        ans = [-x for x in hp]
        return ans