LeetCode-215-数组中第k个最大元素
1.题目
数组中第k个最大元素
在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。
示例 1:
1 | 输入: [3,2,1,5,6,4] 和 k = 2 |
示例 2:
1 | 输入: [3,2,3,1,2,4,5,5,6] 和 k = 4 |
说明:
你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。
2.解题
这个题的大体思路很简单,将数组排序,从大到小排,则结果就是第k个元素(从小到大排,结果就是倒数第k个元素)。因此这道题就是考察数组排序算法。
这里选择了传统快排算法。
代码:
1 | class Solution { |
3.优化
虽然传统快排比一般的排序,但是远不及Java中Arrays
中的优化快排算法快。
只为AC的答案(手动滑稽)!
1 | class Solution { |