题解 | #寻找第K大#

寻找第K大

http://www.nowcoder.com/practice/e016ad9b7f0b45048c58a9f27ba618bf

import java.util.*;

public class Solution {
    public int findKth(int[] a, int n, int K) {
        // write code here
        int b = quickSort(a, 0, a.length-1, K);
        System.out.println(Arrays.toString(a));
        return b;
    }

    public int quickSort(int[] a, int low, int high, int K){
        int pivot = a[low];
        int l=low, r=high;
        while(l<r){
            while(l<r&&a[r]>=pivot) r--;
            a[l] = a[r];
            while(l<r&&a[l]<=pivot) l++;
            a[r] = a[l];
        }
        a[l] = pivot;
        if(l == a.length-K){
            return a[l];
        } else if (l < a.length-K){
            return quickSort(a, l+1, high, K);
        } else {
            return quickSort(a, low, l-1,K);
        }
    }
}
全部评论

相关推荐

10-09 22:05
666 C++
找到工作就狠狠玩CSGO:报联合国演讲,报电子烟设计与制造
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务