हमें पहले N प्राकृतिक संख्याओं के क्रमपरिवर्तन की एक सरणी दी गई है। लक्ष्य यहां उन तत्वों के इंडेक्स युग्मों को ढूंढना है जो नीचे दी गई शर्त को संतुष्ट करते हैं:
यदि एक सरणी Arr[] है, तो i,j इंडेक्स हैं, ऐसे तत्व युग्म गिनें कि Arr[i]+Arr[j]=max(Arr[x]) जैसे कि i<=x<=j।
यानी, Arr[i] और A[j] का योग इन दो खंडों के बीच आने वाले अधिकतम तत्व के बराबर है।
इनपुट
Arr[]= { 2,4,1,3,6,5 } आउटपुट
दी गई शर्त को संतुष्ट करने वाले इंडेक्स युग्मों की संख्या: 1
व्याख्या: युग्मों का योग दिया गया है:
2+4=6, 6 अधिकतम है लेकिन 2 और 4 के बीच नहीं।
2+1=3, 3, 2 और 1 के बीच नहीं है और उनके बीच अधिकतम 4 है।
2+3=5, 5, 2 और 3 के बीच नहीं है और उनके बीच अधिकतम 4 है।
2+6=8, 8, 2 और 6 के बीच नहीं है और उनके बीच अधिकतम 4 है।
इसी तरह
1+5=6, 6, 1 और 5 के बीच है और उनके बीच अधिकतम 6 है।
सभी में से केवल 1 युग्म मौजूद है जो शर्त को संतुष्ट करता है।
इनपुट
Arr[]= { 1,2,5,4,3 } आउटपुट
दी गई शर्त को संतुष्ट करने वाले इंडेक्स युग्मों की संख्या: 2
व्याख्या: युग्मों का योग दिया गया है:
1+5=6, 6 अधिकतम है लेकिन 1 और 5 के बीच नहीं।
1+4=5, 5, 1 और 4 के बीच है और उनके बीच अधिकतम 5 है।
2+3=5, 5, 2 और 3 के बीच है और उनके बीच अधिकतम 5 है।
1+3=4, 4, 1 और 3 के बीच है लेकिन उनके बीच अधिकतम 5 है।
सभी में से 2 युग्म मौजूद हैं जो शर्त को संतुष्ट करते हैं।
प्रयुक्त दृष्टिकोण
- पूर्णांक सरणी Arr[] संख्याओं को संग्रहीत करती है और size इसकी लंबाई।
- फ़ंक्शन countPairs(int A[],int n) एक सरणी और इसके आकार n को इनपुट के रूप में लेता है और ऊपर की शर्त को संतुष्ट करने वाले युग्मों की संख्या लौटाता है।
- चर count का उपयोग ऐसे युग्मों के लिए प्रारंभिक मान 0 संग्रहीत करने के लिए किया जाता है।
- max1 को पहले तत्व और इसके इंडेक्स को maxindex में 0 के रूप में आरंभ करें ताकि अब तक मिले अधिकतम मान और उसके इंडेक्स को संग्रहीत किया जा सके।
- for लूप का उपयोग करके सरणी को पार करना शुरू करें।
- नेस्टेड for लूप के अंदर यदि दिया गया A[j]>=max1 तो max1 और इसके इंडेक्स को j से अपडेट करें।
- A[i] और A[j] के प्रत्येक युग्म के लिए यदि योग max1 के बराबर है और इंडेक्स maxindex i और j के बीच है, तो count बढ़ाएं क्योंकि शर्त संतुष्ट है।
- दोनों लूप के अंत में count में मौजूद परिणाम लौटाएं।
उदाहरण कोड
// दृष्टिकोण का C++ कार्यान्वयन #include<bits/stdc++.h> using namespace std; // आवश्यक इंडेक्स युग्मों की संख्या लौटाने का फ़ंक्शन int countPairs(int A[], int n){ // आवश्यक संख्या संग्रहीत करने के लिए int count = 0; int i,j,k; int max1=A[0]; int maxindex=0; for ( i = 0; i=max1){ max1=A[j]; maxindex=j; } if(A[i]+A[j]==max1 && maxindex>=i && maxindex<=j) count++; } } // उपखंडों की संख्या लौटाएं return count; } int main(){ int Arr[] = {3, 4, 6, 1, 5, 2}; int size =6; cout <<endl<<"दी गई शर्त को संतुष्ट करने वाले इंडेक्स युग्मों की संख्या: " <<countPairs(Arr,size); return 0; } आउटपुट
दी गई शर्त को संतुष्ट करने वाले इंडेक्स युग्मों की संख्या: 1