इस ट्यूटोरियल में, हम एक प्रोग्राम लिखने जा रहे हैं जो दिए गए अक्रमित ऐरे में k-th मिसिंग एलिमेंट का पता लगाता है।
k-th . ढूंढें वह संख्या जो दिए गए क्रमबद्ध सरणी में न्यूनतम से अधिकतम तक गायब है। आइए समस्या को हल करने के लिए चरणों को देखें।
- अक्रमित सरणी को प्रारंभ करें।
- सभी तत्वों को एक सेट में सम्मिलित करें।
- सरणी से अधिकतम और न्यूनतम तत्व खोजें।
- एक लूप लिखें जो न्यूनतम से अधिकतम तक पुनरावृत्त हो और गिनती के लिए एक चर बनाए रखे।
- यदि वर्तमान तत्व सेट में मौजूद है, तो गिनती बढ़ाएँ।
- यदि गिनती k के बराबर है, तो i लौटा दें।
उदाहरण
आइए कोड देखें।
#include <bits/stdc++.h> using namespace std; int findMissingNumber(int arr[], int n, int k) { unordered_set<int> numbers; int count = 0; for (int i = 0; i < n; i++) { numbers.insert(arr[i]); } int max = *max_element(arr, arr + n); int min = *min_element(arr, arr + n); for (int i = min + 1; i < max; i++) { if (numbers.find(i) == numbers.end()) { count++; } if (count == k) { return i; } } return -1; } int main() { int arr[] = { 1, 10, 3, 2, 5 }, n = 5; int k = 3; cout << findMissingNumber(arr, n, k) << endl; return 0; }
आउटपुट
यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्न परिणाम प्राप्त होंगे।
7
निष्कर्ष
यदि ट्यूटोरियल में आपके कोई प्रश्न हैं, तो उनका टिप्पणी अनुभाग में उल्लेख करें।