Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

องค์ประกอบที่เล็กที่สุดอันดับที่ K หลังจากลบจำนวนเต็มบางจำนวนออกจากจำนวนธรรมชาติใน C++


ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมที่จะหาองค์ประกอบที่เล็กที่สุดหลังจากลบจำนวนเต็มออกจากจำนวนธรรมชาติแล้ว

เราได้ให้อาร์เรย์ขององค์ประกอบและค่า k ลบองค์ประกอบทั้งหมดออกจากจำนวนธรรมชาติที่มีอยู่ในอาร์เรย์ที่กำหนด แล้วหาจำนวนที่น้อยที่สุดในลำดับที่ k จากจำนวนธรรมชาติที่เหลืออยู่

มาดูขั้นตอนการแก้ปัญหากัน

  • กำหนดค่าเริ่มต้นอาร์เรย์และ k
  • เริ่มต้นอาร์เรย์และเริ่มต้นองค์ประกอบทั้งหมดด้วย 0 ยกเว้นองค์ประกอบที่มีอยู่ในอาร์เรย์ที่กำหนด
  • เขียนลูปที่วนซ้ำจนถึงขนาดของอาร์เรย์ที่กำหนด
    • ลดค่าของ k หากองค์ประกอบปัจจุบันไม่มีอยู่ในอาร์เรย์ด้านบน
    • คืนค่าปัจจุบันเมื่อ k กลายเป็นศูนย์
  • คืนค่า 0

ตัวอย่าง

มาดูโค้ดกันเลย

#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;
}

ผลลัพธ์

หากคุณเรียกใช้โค้ดด้านบน คุณจะได้ผลลัพธ์ดังต่อไปนี้

2

บทสรุป

หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น