描述(C++) 现在有n个数,请问其中严格第k小的数是多少,其中严格第k小指对这些数去重以后的第k小。 输入描述 第一行两个整数n,k ,这里 n 小于 100 第二行n个整数a 输出描述 输出一行,表示一个答案 用例输入 1 5 3 1 2 3 2 4 用例输出 1 3
时间: 2024-04-18 12:30:53 浏览: 162
您可以使用以下C++代码来解决这个问题:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
int n, k;
std::cin >> n >> k;
std::vector<int> numbers(n);
for (int i = 0; i < n; i++) {
std::cin >> numbers[i];
}
// 对数组去重
std::sort(numbers.begin(), numbers.end());
numbers.erase(std::unique(numbers.begin(), numbers.end()), numbers.end());
// 输出第k小的数
std::cout << numbers[k - 1] << std::endl;
return 0;
}
```
在上面的代码中,我们首先读取输入的n和k值,然后创建一个整数向量来存储输入的n个数。接下来,我们对向量进行排序,并使用`std::unique`函数去除重复的元素。最后,我们输出第k小的数(数组索引从0开始,所以要减去1)。
对于您提供的示例输入,代码将输出1,这是去重后的第3小的数。
希望这可以帮助到您!
阅读全文