本文主要是介绍74、堆-数组中的第K个最大元素,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
思路:
直接排序是可以的,但是时间复杂度不符合。可以使用优先队列,代码如下:
class Solution {public int findKthLargest(int[] nums, int k) {if (nums==null||nums.length==0||k<0||k>nums.length){return Integer.MAX_VALUE;}PriorityQueue<Integer> queue = new PriorityQueue<>(Comparator.reverseOrder());for (int num : nums) {queue.add(num);}for (int i = 1; i < k; i++) {queue.poll();}return queue.poll();}
}
这篇关于74、堆-数组中的第K个最大元素的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!