題目描述
給定一個整數數組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 }