原题链接:https://leetcode.com/problems/kth-largest-element-in-an-array/description/
代码如下:
import java.util.Arrays;
/**
* Created by clearbug on 2018/2/26.
*/
public class Solution {
public static void main(String[] args) {
Solution s = new Solution();
System.out.println(s.findKthLargest(new int[]{3,2,1,5,6,4}, 2));
}
/**
* 方法一:先排序,后查找
*
* 提交结果:94.54%
*
* @param nums
* @param k
* @return
*/
public int findKthLargest(int[] nums, int k) {
Arrays.sort(nums);
return nums[nums.length - k];
}
/**
* 讨论区别人的分析如下:
* 1. 先排序,后查找
* 2. 使用优先级队列然后遍历一次来处理,其实就是避免了对输入数组做全排序,而是把排序的责任让优先级队列来做,降低了排序数组的基数
* 3. 使用类似快速排序的思维啦,跟求数组中 top k 的题目类似
* 4. 借助 Blum-Floyd-Pratt-Rivest-Tarjan 算法思维来提高快排的效率,这个算法我还不甚了解,后续再深入学习
*/
}