703. Kth Largest Element in a Stream

heapは初めて使用した。以下のdiscussを読んで真似した。大きい方から3つを残すという発想はなかった。

https://leetcode.com/problems/kth-largest-element-in-a-stream/discuss/596093/C%2B%2B-solution-with-understandable-explaination

class KthLargest {
public:
    priority_queue<int,vector<int>,greater<int>> minheap;
    int m_k;
    
    KthLargest(int k, vector<int>& nums) {
        m_k=k;
        for(int x:nums){
            add(x);
        }
    }
    
    int add(int val) {
        if(minheap.size()<m_k)
        {
            minheap.push(val);
        }
        else
        {
            if(val>minheap.top())
            {
                minheap.pop();
                minheap.push(val);
            }
        }
        return minheap.top();
    }
};