Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में किसी दिए गए पंक्ति-वार सॉर्ट किए गए मैट्रिक्स की सभी पंक्तियों में एक सामान्य तत्व खोजें

मान लीजिए हमारे पास एक मैट्रिक्स है जहां प्रत्येक पंक्ति को क्रमबद्ध किया जाता है। हमें एक फ़ंक्शन लिखना है जो प्रत्येक पंक्ति में सामान्य तत्वों को ढूंढेगा। मान लीजिए मैट्रिक्स नीचे जैसा है -

C++ में किसी दिए गए पंक्ति-वार सॉर्ट किए गए मैट्रिक्स की सभी पंक्तियों में एक सामान्य तत्व खोजें

परिणाम 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

  1. C++ . में दिए गए स्ट्रिंग में "1(0+)1" के सभी पैटर्न खोजें

    मान लीजिए कि एक स्ट्रिंग में 1(0+)1 जैसे पैटर्न हैं। जहां (0+) 1s की गैर-रिक्त लगातार घटनाओं को इंगित करता है। हमें सभी पैटर्न खोजने होंगे। पैटर्न ओवरलैप कर सकते हैं। स्ट्रिंग जरूरी नहीं कि एक बाइनरी स्ट्रिंग हो। यह केवल अंक और लोअरकेस वर्ण धारण कर सकता है। मान लीजिए कि स्ट्रिंग 1101001 की तरह है, त

  1. C++ में दिए गए समुच्चय के सभी भिन्न उपसमुच्चय ज्ञात कीजिए

    यहां हम देखेंगे कि किसी दिए गए सेट के सभी अलग-अलग सबसेट को कैसे प्रदर्शित किया जाए। अतः यदि समुच्चय {1, 2, 3} है, तो उपसमुच्चय {}, {1}, {2}, {3}, {1, 2}, {2, 3}, {1, 3} होंगे। , {1, 2, 3}। सभी उपसमुच्चयों के समुच्चय को घात समुच्चय कहते हैं। पावर सेट में 2n तत्व होते हैं। हम 0 से 2n (छोड़कर) के माध्

  1. पायथन में मैट्रिक्स की सभी पंक्तियों के लिए अलग-अलग तत्व खोजें

    मान लीजिए कि हमारे पास m x m कोटि का एक वर्ग आव्यूह है; हमें दिए गए मैट्रिक्स की सभी पंक्तियों के लिए सभी अलग-अलग तत्वों को समान रूप से खोजना होगा। तो, अगर इनपुट पसंद है 13 2 15 4 17 15 3 2 4 36 15 2 15 4 12 15 26 4 3 2 2 19 4 22 15 तब आउटपुट [2,4,15] . होगा इसे हल करने के लिए, हम इन चरणों