题解 | #寻找第K大# 秒啊
寻找第K大
https://www.nowcoder.com/practice/e016ad9b7f0b45048c58a9f27ba618bf
class Solution { // 使用堆 但是 make_heap 很妙 达到复杂度所有要求 // https://www.nowcoder.com/practice/e016ad9b7f0b45048c58a9f27ba618bf?tpId=295&tags=&title=&difficulty=0&judgeStatus=0&rp=0&sourceUrl=%2Fexam%2Foj%3Fpage%3D1%26tab%3D%25E7%25AE%2597%25E6%25B3%2595%25E7%25AF%2587%26topicId%3D295 public: int findKth(vector<int> a, int n, int K) { // write code here vector<int>::iterator iter; // int i = 0; for(iter = a.begin(); K>1; K--) { make_heap(iter, a.end(), less<int>()); // 构建大顶堆 是直接在a上操作的 每次把iter, a.end之间的最大值 给 iter 本来的值被交换 iter++; //每构建1次 调整一次起始构建位置 } make_heap(iter, a.end(), less<int>()); return *iter; } };