#leetcode簽到
Day 1
703. Kth Largest Element in a Stream
隔了一段時間重新開始寫
今天題目是要設計一個 KthLargest的class
有init 和add
init 就會給這次這個class會在add的同時回傳第K大的數字
一開始我用heap全存 然後在那邊彈出來又塞回去
想當然 test case 9 TLE
翻了一下discussion
恩 第K大 就是heap長度維持k (還是下面大老多
class KthLargest:

    def __init__(self, k: int, nums: List[int]):
        self.h=[]
        self.k=k
        for i in nums:
            heapq.heappush(self.h,i)
        while k<len(self.h):
            heapq.heappop(self.h)
    def add(self, val: int) -> int:
        heapq.heappush(self.h,val)
        if len(self.h)>self.k:
            heapq.heappop(self.h)
        return self.h[0]
 
 
Back to Top