排序
哲里哲里
更好的自己
展开
-
O(n) 时间复杂度内求无序数组中的第 K 大元素
思路:我们选择数组区间 A[0…n-1]的最后一个元素 A[n-1]作为 pivot,对数组 A[0…n-1]原地分区,这样数组就分成了三部分,A[0…p-1]、A[p]、A[p+1…n-1]。如果 p+1=K,那 A[p]就是要求解的元素;如果 K>p+1, 说明第 K 大元素出现在 A[p+1…n-1]区间,我们再按照上面的思路递归地在 A[p+1…n-1]这个区间内查找。同理,如果 K<p+1,那我们就在 A[0…p-1]区间查找。代码如下:package com..原创 2020-06-09 23:45:22 · 1423 阅读 · 4 评论 -
lintcode-第k大的数
题目:在数组中找到第k大的元素样例:给出数组 [9,3,2,4,8],第三大的元素是 4给出数组 [1,2,3,4,5],第一大的元素是 5,第二大的元素是 4,第三大的元素是 3,以此类推/** * find KthMax number */ public static int kthLargestElement(int k, int[] nums) { if(null =...转载 2018-02-08 15:56:39 · 401 阅读 · 0 评论