题目要求:给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。
代码及思路
使用小根堆来解决,遍历数组,将元素放入堆中
当堆的大小大于k时,将堆顶元素弹出
最终堆中元素是数组中最大的k个元素,且堆顶是其中最小的
代码
class Solution {public int findKthLargest(int[] nums, int k){PriorityQueue<Integer> minHeap = new PriorityQueue<>();for(int num :nums){minHeap.add(num);if(minHeap.size()>k){minHeap.poll();}}return minHeap.peek();}}
构建异常
1. 问题:ESLint: Do not access Object.prototype method hasOwnProperty from target o
报错解释:
ESLint 报错信息 "Do not access Object.prototype method hasOwnProperty from target object" 指的是不应该从目标对象访问 Ob…