Leetcode hot100 数组中的第k个最大元素

发布时间:2026/6/19 10:32:36
Leetcode hot100 数组中的第k个最大元素 这个题直觉就是维护一个大小为k的窗口里面的值从小到大排列来了一个数就和最小值比较如果大于最小值就把目前的最小值踢出去这个新值入窗口。用最小堆实现。class Solution { public int findKthLargest(int[] nums, int k) { PriorityQueueInteger minHeap new PriorityQueue(); for(int i0; inums.length; i){ if(minHeap.size()k) minHeap.offer(nums[i]); else { if(nums[i]minHeap.peek()) { minHeap.poll(); minHeap.offer(nums[i]); } } } return minHeap.peek(); } }可惜堆排序的时间复杂度是O(nlogn)不满足题目O(n)的要求。法一快速排序只选一半——快速查找快排我们不是递归的时候基准的两边分别去递归吗所以快排的时间复杂度是O(nlogn)