
LeetCode 703: Kth Largest Element In A Stream — Step-by-Step Visual Trace
Easy — Heap | Priority Queue | Data Stream | Design The Problem Design a class that efficiently finds the kth largest element in a stream of integers, where new values are continuously added and we need to return the kth largest element after each addition. Approach Use a min-heap of size k to maintain the k largest elements seen so far. The root of this min-heap will always be the kth largest element, allowing constant-time retrieval after each insertion. Time: O(log k) per add operation, O(n log k) for initialization · Space: O(k) Code import heapq class KthLargest : def __init__ ( self , k : int , nums : List [ int ]): self . min_heap = [] self . k = k for num in nums : self . add ( num ) def add ( self , val : int ) -> int : heapq . heappush ( self . min_heap , val ) if len ( self . min_heap ) > self . k : heapq . heappop ( self . min_heap ) return self . min_heap [ 0 ] # Your KthLargest object will be instantiated and called as such: # obj = KthLargest(k, nums) # param_1 = obj.add
Continue reading on Dev.to
Opens in a new tab


