题解 | #查找第K小数#
查找第K小数
https://www.nowcoder.com/practice/204dfa6fcbc8478f993d23f693189ffd
不用优先队列也能做 排序后记录下前后值是否相同即可
#include <bits/stdc++.h> using namespace std; int main() { int n; while(cin >> n){ int nums[n + 10]; for(int i = 0; i < n; i++){ cin >> nums[i]; } int k; cin >> k; sort(nums, nums + n); if(k == 1) { cout << nums[0] << endl; continue; } k--; for(int i = 1; i < n; i++){ if(nums[i] != nums[i - 1]) k--; if(k == 0) { cout << nums[i] << endl; break; } } } } // 64 位输出请用 printf("%lld")