题目描述:
在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。
示例 1:
输入: [3,2,1,5,6,4] 和 k = 2
输出: 5
示例 2:
输入: [3,2,3,1,2,4,5,5,6] 和 k = 4
输出: 4
说明:
你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。
代码:
public class LC215 {
//使用List进行从大到小排序,返回第k-1个元素即可
public int findKthLargest(int[] nums, int k) {
List<Integer> list = new ArrayList<>();
for(int i = 0; i < nums.length; i++){
list.add(nums[i]);
}
list.sort((t1,t2) -> -Integer.compare(t1,t2));
return list.get(k-1);
}
public static void main(String[] args) {
int[] nums = new int[]{3,2,3,1,2,4,5,5,6};
LC215 obj = new LC215();
System.out.println(obj.findKthLargest(nums, 4));
}
}