215. 数组中的第K个最大元素

2021-11-10  本文已影响0人  名字是乱打的

题目:

思路:

维护一个小根堆,把元素添进去,只要堆大小超过了k值,我们就进行出堆,这样留在最后的就是k个最大数据,其中堆顶就是目前k个最大数据的最小值即我们求的数组中第 k 个最大的元素。

代码:

public int findKthLargest(int[] nums, int k) {
        final PriorityQueue<Integer> minHeap = new PriorityQueue<>();
        for (int i = 0; i < nums.length; i++) {
            minHeap.add(nums[i]);
            if (minHeap.size()>k){
                minHeap.poll();
            }
        }
        return minHeap.poll();
    }
上一篇 下一篇

猜你喜欢

热点阅读