Find the kth largest element in an unsorted array. Note that it is the kth largest element in the sorted order, not the kth distinct element.
For example,
Given[3,2,1,5,6,4] and k = 2, return 5.
Note:
You may assume k is always valid, 1 ≤ k ≤ array's length.
这道题是找出数组中第k大的数,题目难度为Medium。
很容易想到用堆来解决带优先级的问题,这里使用priority_queue,具体代码:
class Solution {
public:
int findKthLargest(vector<int>& nums, int k) {
priority_queue<int> heap;
int ret;
for(int i=0; i<nums.size(); i++)
heap.push(nums[i]);
for(int i=0; i<k; i++) {
ret = heap.top();
heap.pop();
}
return ret;
}
};