一、题目内容
二、题解
解法1:
思路
代码
public class Solution { public int findKth(int[] a, int n, int K) { //边界条件 return quickFind(a, 0, n - 1, K); } private int quickFind(int[] a, int left, int right, int k) { int p = partition(a,left,right); if (p == k - 1) { return a[p]; } else if (p > k - 1) { return quickFind(a, left, p-1, k); } else { return quickFind(a, p+1,right, k); } } private int partition(int[] a, int left, int right){ int target = a[left]; while (left < right) { while (left < right && a[right] <= target) { right--; } if (left < right) { a[left] = a[right]; left++; } while (left < right && a[left] > target) { left++; } if (left < right) { a[right] = a[left]; right--; } } a[left] = target; return left; }}