问题描述:
有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。
给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在。
测试样例:
[1,3,5,2,2],5,3返回:2
分析:
利用sort方法对数组进行排序,排序完成后直接返回第 n-k 个数。排完序的数组顺序是从小到大的,那么取数只需要从后往前取就好了。
代码:
import java.util.*;
public class Finder {
public int findKth(int[] a, int n, int K) {
if( n == 0 || K > n){
return -1;
}
Arrays.sort(a);
return a[n-K];
}
}