मान लीजिए हमारे पास एक मैट्रिक्स है जहां प्रत्येक पंक्ति को क्रमबद्ध किया जाता है। हमें एक फ़ंक्शन लिखना है जो प्रत्येक पंक्ति में सामान्य तत्वों को ढूंढेगा। मान लीजिए मैट्रिक्स नीचे जैसा है -
परिणाम 5 होगा।
इसे हल करने के लिए, हम हैश आधारित दृष्टिकोण का उपयोग करेंगे। पंक्तियों को सॉर्ट नहीं किए जाने पर भी इस दृष्टिकोण का उपयोग किया जा सकता है। ऐसा करने के लिए हमें कुछ चरणों का पालन करना होगा -
हम दो 1 के अलग-अलग तत्वों के रूप में सभी कुंजियों के साथ एक हैश तालिका बनाएंगे। सभी मान 0 होंगे
मैट्रिक्स में प्रत्येक तत्व के माध्यम से लूप, यदि संख्या हैश तालिका में मौजूद है तो गिनती 1 से बढ़ाएं। अंत में जांचें कि क्या कोई मान है जिसकी गिनती मैट्रिक्स की पंक्ति संख्या के समान है। यदि ऐसा है तो वह प्रत्येक पंक्ति में मौजूद है। (मान लें कि एक मान एक पंक्ति में दोहराया नहीं जा रहा है)
उदाहरण
#include<iostream> #include<unordered_map> #define M 4 #define N 5 using namespace std; int getCommonElement(int matrix[M][N]) { unordered_map<int, int> count; int i, j; for (i = 0; i < M; i++) { count[matrix[i][0]]++; for (j = 1; j < N; j++) { if (matrix[i][j] != matrix[i][j - 1]) count[matrix[i][j]]++; } } for (auto ele : count) { if (ele.second == M) return ele.first; } return -1; } int main() { int matrix[M][N] = { { 1, 2, 3, 4, 5 }, { 2, 4, 5, 8, 10 }, { 3, 5, 7, 9, 11 }, { 1, 3, 5, 7, 9 }, }; int result = getCommonElement(matrix); if (result == -1) cout << "No common element has found"; else cout << "Common element is " << result; }
आउटपुट
Common element is 5