[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/feixiangcode/algorithm/master/Week_03/id_131/LeetCode_703_131.cpp [Back]  [Original]

/*
  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);
 */

Web Proxy Viewer  |  New URL  |  Original Page