/*
703. K
K ( class ). K
K
KthLargest k nums
KthLargest.add, K
:
int k = 3;
int[] arr = [4,5,8,2];
KthLargest kthLargest = new KthLargest(3, arr);
kthLargest.add(3); // returns 4
kthLargest.add(5); // returns 5
kthLargest.add(10); // returns 5
kthLargest.add(9); // returns 8
kthLargest.add(4); // returns 8
:
nums k-1 k 1
*/
/*
K
,
priority_queue /
Type ContainerFunctional
vector
operator lessPileTop;
int TopK;
public:
KthLargest(int k, vector& nums) {
TopK = k;
for(int i = 0; i < nums.size(); ++i)
{
add(nums[i]);
}
}
int add(int val) {
if( lessPileTop.size() < TopK ) lessPileTop.push(val);
else if( lessPileTop.top() < val)
{
lessPileTop.pop();
lessPileTop.push(val);
}
return lessPileTop.pop();
}
};
/**
* Your KthLargest object will be instantiated and called as such:
* KthLargest* obj = new KthLargest(k, nums);
* int param_1 = obj->add(val);
*/