इस लेख में, हम दिए गए मैट्रिक्स में दिए गए योग के साथ एक जोड़ी खोजने के कार्यक्रम पर चर्चा करेंगे। उदाहरण के लिए -
Input : matrix[n][m] = { { 4, 6, 4, 65 }, { 56, 1, 12, 32 }, { 4, 5, 6, 44 }, { 13, 9, 11, 25 } }, SUM = 20 Output : Pair exists. Explanation : Sum = 20 is equal to the sum of numbers 9 and 11 which exists in the matrix. Input : matrix[n][m] = { { 5, 7, 3, 45 }, { 63, 5, 3, 7 }, { 11, 6, 9, 5 }, { 8, 6, 14, 15 } }, SUM = 13 Output : Pair does not exist. Explanation : No pair exists in the matrix whose sum is equal to 7.
समाधान खोजने के लिए दृष्टिकोण
अब हम उपरोक्त समस्या का समाधान खोजने के लिए दो अलग-अलग तरीकों की व्याख्या करेंगे।
ब्रूट-फोर्स अप्रोच
दिए गए मैट्रिक्स में प्रत्येक जोड़ी को ध्यान में रखते हुए और यह जांचना कि क्या जोड़ी का योग दिए गए एसयूएम के बराबर है, यदि हां, तो "जोड़ी मौजूद है" प्रिंट करें; अन्यथा, "जोड़ी मौजूद नहीं है" प्रिंट करें। इस दृष्टिकोण को लागू करना बहुत सरल है, लेकिन यह समय की जटिलता को O((N*M)2) तक बढ़ा देगा।
कुशल दृष्टिकोण
यह प्रोग्राम सभी मैट्रिक्स तत्वों को स्टोर करने के लिए हैश का उपयोग करके कुशल हो सकता है और फिर मैट्रिक्स के माध्यम से पार कर सकता है और जांच सकता है कि [एसयूएम और (इंडेक्स एलिमेंट)] का अंतर बराबर है या नहीं। यदि हाँ, तो "मौजूद" प्रिंट करें और प्रोग्राम से बाहर निकलें। यदि नहीं, तो प्रिंट को पार करने के बाद, "मौजूद नहीं है।"
उदाहरण
#include <bits/stdc++.h> using namespace std; #define n 4 #define m 4 int main() { int matrix[n][m] = { { 5,7, 3,45 }, { 63, 5, 3, 7 }, { 11, 6, 9, 5 }, { 8, 6, 14, 15 } }; int sum = 7; unordered_set<int> hash; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (hash.find(sum - matrix[i][j]) != hash.end()) { cout << "Pair exists." << endl; return 0; } else { hash.insert(matrix[i][j]); } } } cout << "Pair does not exist." << endl; return 0; }
आउटपुट
Pair does not exist.
उपरोक्त कोड की व्याख्या
- 2-डी सरणी घोषित करना और उसमें तत्वों को संग्रहीत करना।
- अगर (योग-मैट्रिक्स[i][j]) !=हैश.एंड ()।
- अगर शर्त पूरी होती है, तो "जोड़ी मौजूद है" प्रिंट करें और मुख्य फ़ंक्शन से वापस आएं।
- अन्यथा, सरणी को पार करते रहें और अंत में "जोड़ी मौजूद नहीं है" प्रिंट करें।
निष्कर्ष
इस लेख में, हमने मैट्रिक्स या 2-डी सरणी में दिए गए योग के साथ एक जोड़ी खोजने पर चर्चा की; हमने इस समस्या को हल करने के लिए ब्रूट-फोर्स दृष्टिकोण और एक कुशल दृष्टिकोण पर चर्चा की। हमने इस समस्या को हल करने के लिए C++ प्रोग्राम पर चर्चा की। हालाँकि, हम इस प्रोग्राम को किसी अन्य भाषा जैसे C, Java, Python, आदि में लिख सकते हैं। हमें उम्मीद है कि आपको यह लेख मददगार लगा होगा।