题解 | #寻找第K大#

寻找第K大

https://www.nowcoder.com/practice/e016ad9b7f0b45048c58a9f27ba618bf

import java.util.*;

public class Solution {
    public int findKth(int[] a, int n, int K) {
        // write code here
        Queue<Integer> priorityQueue = new PriorityQueue<>(K*2);

        for (int i : a) {
            if(priorityQueue.size()<K) {
                priorityQueue.add(i);
			// 取出根节点也就是最小的值
            }else if(i > priorityQueue.peek()) {
                priorityQueue.add(i);
                priorityQueue.poll();
            }
        }

        int x = priorityQueue.poll();
        return x;

    }
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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