题解 | #寻找第K大#
寻找第K大
https://www.nowcoder.com/practice/e016ad9b7f0b45048c58a9f27ba618bf
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param a int整型一维数组 * @param n int整型 * @param K int整型 * @return int整型 */ public int findKth (int[] a, int n, int K) { if (n == 0) return 0; quickSort(a, 0, n - 1); return a[n - K]; } public void quickSort(int[] arr, int i, int j) { int start = i; int end = j; if (start >= end) return; int pivot = arr[start]; while (start != end) { while (true) { if (end <= start || arr[end] < pivot) { break; } end--; } while (true) { if (end <= start || arr[start] > pivot) { break; } start++; } int temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; } int temp = arr[i]; arr[i] = arr[start]; arr[start] = temp; quickSort(arr, i, start - 1); quickSort(arr, start + 1, j); } }