इस समस्या में, हमें n संख्या से मिलकर एक सरणी arr[] दी जाती है। हमारा काम जोड़े जाने वाले तत्वों की संख्या ज्ञात करने के लिए एक प्रोग्राम बनाना है ताकि एक श्रेणी के सभी तत्व सरणी में मौजूद हों।
समस्या का विवरण: यहां, हमें यह सुनिश्चित करने के लिए कि किसी श्रेणी के सभी तत्व सरणी में मौजूद हैं, सरणी में जोड़े जाने के लिए आवश्यक तत्वों की संख्या को खोजने की आवश्यकता है। श्रेणी सरणी के सबसे छोटे तत्व . से है से सरणी का सबसे बड़ा तत्व।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट: गिरफ्तारी [] ={5, 8, 3, 1, 6, 2}
आउटपुट: 2पी>
स्पष्टीकरण:
सीमा 1 से 8 तक है,
जोड़े जाने वाले तत्व 4 और 7 हैं।
समाधान दृष्टिकोण -
समस्या का एक सरल समाधान यह है कि श्रेणी का कौन सा तत्व सरणी में मौजूद नहीं है। इसके लिए, हमें सरणी को सॉर्ट करना होगा और फिर यह पता लगाना होगा कि अगला तत्व मौजूद है या नहीं।
एल्गोरिदम -
चरण 1: सरणी को क्रमबद्ध करें।
चरण 2: सरणी के माध्यम से लूप, i -> 0 से n-1 के लिए।
चरण 2.1: अगर गिरफ्तारी [i] + 1 !=गिरफ्तारी [i+1], तो गिनती बढ़ाएं।
चरण 3: प्रिंट गिनती।
हमारे समाधान की कार्यप्रणाली को दर्शाने वाला कार्यक्रम,
उदाहरण
#include <bits/stdc++.h> using namespace std; int calcEleRequired(int arr[], int n) { int count = 0; sort(arr, arr + n); for (int i = 0; i < n - 1; i++) if (arr[i]+1 != arr[i+1] ) count ++; return count; } int main() { int arr[] = { 5, 7, 3, 1, 6, 2 }; int n = sizeof(arr) / sizeof(arr[0]); cout<<"The number of elements required to complete the range is "<<calcEleRequired(arr, n); return 0; }
आउटपुट -
The number of elements required to complete the range is 1