215. 陣列中的第K個最大元素
class Solution: def findKthLargest(self, nums: List[int], k: int) -> int: ans = [] for i in range(k): heapq.heappush(ans, nums[i]) for i in range(k, len(nums)): if nums[i] > ans[0]: heapq.heappop(ans) heapq.heappush(ans, nums[i]) return ans[0]
import heapq
heapq.heapify(nums) # 對nums[] 進行建堆操作,是小頂堆
heapq.heappush(ans, val) 將val 加入到ans這個堆中,val 和 父節點比較,找到對應的位置
val = heapq.heappop(ans) 彈出棧頂,按理說 之後的棧頂仍會保留其餘數值的最小值