Solution 1

Python
from heapq import heapify, heappush, heappop, heappushpop
class KthLargest:

    def __init__(self, k: int, nums: List[int]):
        heapify(nums)
        while len(nums) > k:
            heappop(nums)
        self.h = nums
        self.k = k

    def add(self, val: int) -> int:
        if len(self.h) < self.k:
            heappush(self.h, val)
            return self.h[0]
        heappushpop(self.h, val)    
        return self.h[0]

# Your KthLargest object will be instantiated and called as such:
# obj = KthLargest(k, nums)
# param_1 = obj.add(val)
Leet Code/python.py · L2072–2092