题目描述
有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。
给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在。
从大到小排序去重,直接输出第k大即可 利用sort(b,b+n,greater())从大到小排序;
利用ans=unique(b,b+n)-b;去重
AC代码:
class Finder {
public:
int findKth(vector<int> a, int n, int K) {
// write code here
int h=0,b[n];
for(int i=0;i<n;i++){
b[h++]=a[i];
}
sort(b,b+h,greater<int>());
int ans=unique(b,b+h)-b;
return b[K-1];
}
};