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