题解 | #查找第K小数#
查找第K小数
https://www.nowcoder.com/practice/204dfa6fcbc8478f993d23f693189ffd
#include <iostream>
#include <algorithm>
using namespace std;
int cmp(const void *a, const void *b){
return *(int*)a-*(int*)b;
}
int main(int argc, const char** argv) {
int n;
scanf("%d", &n);
int* a = new int[n];
for (int i = 0; i < n; ++i)
{
scanf("%d", &a[i]);
}
qsort(a, n, sizeof(int), cmp);
int k;// 第k小的数
scanf("%d", &k);
int j=0;//i表示扫描指针,j表示实际存放的数
int len = 0;
for (int i = 0; i < n; i++)
{
if (a[j]!=a[i]){
j++;
a[j] = a[i];//是从0开始
// len=j+1;
}
}
printf("%d",a[k-1]);
return 0;
}
查看5道真题和解析