【数据结构】算法 Kth Largest Element in an Array 数组中的第K个最大元素

Kth Largest Element in an Array 数组中的第K个最大元素

在未排序的数组中找到第 k 个最大的元素

输入: [3,2,1,5,6,4] 和 k = 2
输出: 5
 

思路

可以通过小顶堆, 并且将堆大小保持在k。此时堆顶节点都是需要的结果。

 public int findKthLargest(int[] nums, int k) {
        PriorityQueue<Integer> pq = new PriorityQueue<>((o1,o2)->o1-o2);
        for (int i = 0; i < nums.length; i++) {
            pq.offer(nums[i]);

            if(pq.size()>k){
               pq.poll();
            }
             
        }
        return pq.peek();
    }

Tag

heap

原文地址:https://www.cnblogs.com/dreamtaker/p/14671135.html