215. Kth Largest Element in an Array
Given an integer array nums and an integer k, return the kth largest element in the array.
Note that it is the kth largest element in the sorted order, not the kth distinct element.
Example 1:
Input: nums = [3,2,1,5,6,4], k = 2
Output: 5
Example 2:
Input: nums = [3,2,3,1,2,4,5,5,6], k = 4
Output: 4
先排序,后取值就很容易
class Solution {
public int findKthLargest(int[] nums, int k) {
Arrays.sort(nums);
return nums[nums.length - k];
}
}
两行代码搞定了,然后我看好像还有堆排序的写法,如下:
class Solution {
public int findKthLargest(int[] nums, int k) {
PriorityQueue<Integer> pq = new PriorityQueue();
for (int val : nums){
pq.add(val);
if (pq.size() > k) pq.poll();
}
return pq.peek();
}
}
其实都差不多,影响不大。
这篇博客讨论了如何在给定数组中找到第K大的元素,提供了两种解决方案:一种是通过排序,另一种是使用优先队列(堆)。示例代码展示了这两种方法的简单实现,并指出它们在效率上的微小差异。
865

被折叠的 条评论
为什么被折叠?



