题解 | 查找第K小数
查找第K小数
https://www.nowcoder.com/practice/204dfa6fcbc8478f993d23f693189ffd?tpId=67&tqId=29637&tPage=1&ru=%2Fkaoyan%2Fretest%2F1005&qru=%2Fta%2Fbupt-kaoyan%2Fquestion-ranking
#include <iostream>
#include <string>
#include <algorithm>
#include <cmath>
using namespace std;
//第K小的数
int main() {
int n;
cin >> n;
int arr[n];
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
int K;
cin >> K;
sort(arr, arr + n);
int count = 0;
for (int i = 0; i < n; i++) {
if (arr[i] != arr[i + 1]) count++;
if (count == K) cout << arr[i];
}
return 0;
}
定义一个变量count记录当前元素是第几小,只在排序后的数组元素前后不相等时,count++。