HZFE / algorithms-solving

1 stars 0 forks source link

2022-08-30 #32

Open github-actions[bot] opened 2 years ago

gongpeione commented 2 years ago

703 Kth Largest Element in a Stream

/*
 * @lc app=leetcode id=703 lang=javascript
 *
 * [703] Kth Largest Element in a Stream
 */

// @lc code=start
class KthLargest {
    minHeap = null
    k = 0

    constructor(k, nums) {
        this.minHeap = new MinPriorityQueue();
        this.k = k;
        nums.forEach(n => {
            this.minHeap.enqueue(n);
        });
    }

    add(val) {
        // put val into min heap
        this.minHeap.enqueue(val);

        // pop min element if min heap's size is greater than k
        while (this.minHeap.size() > this.k) {
            this.minHeap.dequeue();
        }

        return this.minHeap.front().element;
    }
}

/**
 * Your KthLargest object will be instantiated and called as such:
 * var obj = new KthLargest(k, nums)
 * var param_1 = obj.add(val)
 */
// @lc code=end

Nickname: Geeku From vscode-hzfe-algorithms