Trong hướng dẫn này, chúng ta sẽ viết một chương trình tìm số nhỏ thứ K trong mảng không sắp xếp.
Các bước giải quyết
- Khởi tạo mảng và K.
- Khởi tạo ordered set rỗng.
- Duyệt mảng, chèn từng phần tử vào set.
- Duyệt set từ 0 đến K - 1.
- Trả về giá trị.
Ví dụ
Dưới đây là mã nguồn C++:
#include <bits/stdc++.h>
using namespace std;
int findKthSmallestNumber(int arr[], int n, int k) {
set<int> s;
for (int i = 0; i < n; i++) {
s.insert(arr[i]);
}
auto it = s.begin();
for (int i = 0; i < k - 1; i++) {
it++;
}
return *it;
}
int main() {
int arr[] = { 45, 32, 22, 23, 12 }, n = 5, k = 3;
cout << findKthSmallestNumber(arr, n, k) << endl;
return 0;
}Kết quả
Nếu bạn chạy mã trên, kết quả sẽ là:
23
Kết luận
Nếu bạn có bất kỳ thắc mắc nào về hướng dẫn này, hãy để lại bình luận bên dưới.