LC 215数组中的第K个最大元素Kth Largest Element in an Array 中等
在无序数组中找出第 k 大的元素(k 从 1 计),无需整体排序。
思路 大小为 k 的小根堆:元素入堆,超过 k 弹最小,堆顶即第 k 大;O(n log k)。亦可用快速选择 O(n)。
class Solution: def findKthLargest(self, nums: List[int], k: int) -> int: min_hp = [] for x in nums: heappush(min_hp, x) if len(min_hp) > k: heappop(min_hp) return min_hp[0]