//建堆的时间复杂度近似为O(n) 调整堆的时间复杂度为O(log(n)) class Finder { public: int findKth(vector<int> a, int n, int K) { priority_queue<int> pq; for(int val : a)pq.push(val); //build堆得时间复杂度为0(n) while(--K)pq.pop(); return pq.top(); } };
//建堆的时间复杂度近似为O(n) 调整堆的时间复杂度为O(log(n)) class Finder { public: int findKth(vector<int> a, int n, int K) { priority_queue<int> pq; for(int val : a)pq.push(val); //build堆得时间复杂度为0(n) while(--K)pq.pop(); return pq.top(); } };