Computer >> Máy Tính >  >> Lập trình >> C ++

Phần tử nhỏ nhất thứ K sau khi xóa một số số nguyên khỏi số tự nhiên trong C ++

Trong hướng dẫn này, chúng ta sẽ viết một chương trình tìm ra phần tử nhỏ nhất sau khi loại bỏ một số số nguyên khỏi các số tự nhiên.

Chúng tôi đã đưa ra một mảng các phần tử và giá trị k. Loại bỏ tất cả các phần tử khỏi số tự nhiên có trong mảng đã cho. Và sau đó tìm số nhỏ nhất thứ k từ các số tự nhiên còn lại.

Hãy xem các bước để giải quyết vấn đề.

  • Khởi tạo mảng và k.
  • Khởi tạo mảng và khởi tạo tất cả các phần tử bằng 0 ngoại trừ các phần tử có trong mảng đã cho.
  • Viết một vòng lặp lặp lại cho đến hết kích thước của mảng đã cho.
    • Giảm giá trị của k nếu phần tử hiện tại không có trong mảng trên.
    • Trả về giá trị hiện tại khi k trở thành 0.
  • Trả về 0.

Ví dụ

Hãy xem mã.

#include <bits/stdc++.h>
#define MAX 1000000
using namespace std;
int smallestNumber(int arr[], int n, int k) {
   int flag[MAX];
   memset(flag, 0, sizeof flag);
   for (int i = 0; i < n; i++) {
      flag[arr[i]] = 1;
   }
   for (int i = 1; i < MAX; i++) {
      if (flag[i] != 1) {
         k--;
      }
      if (!k) {
         return i;
      }
   }
   return 0;
}
int main() {
   int k = 2;
   int arr[] = { 3, 5 };
   cout << smallestNumber(arr, 2, k) << endl;
   return 0;
}

Đầu ra

Nếu bạn chạy đoạn mã trên, thì bạn sẽ nhận được kết quả sau.

2

Kết luận

Nếu bạn có bất kỳ câu hỏi nào trong hướng dẫn, hãy đề cập đến chúng trong phần bình luận.