寻找第K大的数(堆)

寻找第K大

http://www.nowcoder.com/questionTerminal/e016ad9b7f0b45048c58a9f27ba618bf

//建堆的时间复杂度近似为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();
    }
};
全部评论
利用push方法建立堆的复杂度应该是O(nlogn),直接由数组初始化过来才是O(n)
点赞 回复 分享
发布于 2021-08-11 12:56

相关推荐

评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务