题目描述
给定一个整数数组a[0,...,n-1],求数组中第k小数
输入描述
首先输入数组长度n和k,其中1<=n<=5000, 1<=k<=n
然后输出n个整形元素,每个数的范围[1, 5000]
输出描述
该数组中第k小数
样例输入
4 2 1 2 3 4
样例输出
2
其实可以用 堆 来做,保证根节点为最小值,然后逐步剔除。不过当然也可以直接排序。权当熟悉一下STL:
1 #include <vector> 2 #include <algorithm> 3 #include <iostream> 4 using namespace std; 5 6 int main() 7 { 8 int n, k; 9 cin >> n >> k; 10 11 vector<int> a(n, 0); 12 for (int i = 0; i < n; i++) 13 { 14 cin >> a[i]; 15 } 16 sort(a.begin(), a.end()); 17 18 cout << a[k-1]; 19 20 return 0; 21 }
时间: 2024-10-09 14:02:24