215. Kth Largest Element in an Array

原题链接: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 算法思维来提高快排的效率,这个算法我还不甚了解,后续再深入学习
     */


}
posted @ 2018-03-25 10:45  optor  阅读(109)  评论(0编辑  收藏  举报