반응형

https://leetcode.com/problems/kth-largest-element-in-a-stream/

 

Kth Largest Element in a Stream - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

최소 힙에 k개의 원소만 유지해줍니다.

그러면 k번째 큰 수보다 작은 수는 모두 제거되기 때문에, 최소 힙의 top은 k번째 큰 수가 유지될 수 있습니다.

 

class KthLargest {
private:
    int k;
    priority_queue<int> pq;
public:
    KthLargest(int k, vector<int>& nums) : k(k) {
        for(int num : nums) pq.push(-num);  
        while(pq.size() > k) pq.pop();
    }
    int add(int val) {
        pq.push(-val);
        if(pq.size() > k) pq.pop();
        return -pq.top();
    }
};
반응형

'Algorithm' 카테고리의 다른 글

LeetCode 36 : Valid Sudoku  (0) 2022.04.09
LeetCode 347 : Top K Frequent Elements  (0) 2022.04.09
LeetCode 31 : Next Permutation  (2) 2022.03.27
LeetCode 1337 : The K Weakest Rows in a Matrix  (0) 2022.03.27
LeetCode 704 : Binary Search  (0) 2022.03.26

+ Recent posts