题解 | #寻找第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) { fastSort(a,0,a.length - 1); return a[n - K]; } // 快排 public void fastSort(int[] a,int start,int tail){ if(start > tail){ return; } int begin = start; int end = tail; int key = a[start]; while(begin < end){ while(a[end] >= key && begin < end){ end--; } while(a[begin] <= key && begin < end){ begin++; } if(begin < end){ int temp = a[begin]; a[begin] = a[end]; a[end] = temp; } } a[start] = a[begin]; a[begin] = key; fastSort(a,start,begin - 1); fastSort(a,begin + 1,tail); } }