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

सी ++ में मैट्रिक्स की सभी पंक्तियों के लिए आम तौर पर अलग-अलग तत्व खोजें

अवधारणा

किसी दिए गए एम एक्स एम मैट्रिक्स के संबंध में, समस्या मैट्रिक्स की सभी पंक्तियों के लिए सभी अलग-अलग तत्वों को निर्धारित करना है। तो तत्वों को किसी भी क्रम में प्रदर्शित किया जा सकता है।

इनपुट

mat[][] = { {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

तरीके

पहला तरीका:तीन नेस्टेड लूप लागू करें। सत्यापित करें कि पहली पंक्ति का कोई तत्व बाद की सभी पंक्तियों में मौजूद है या नहीं। यहाँ, समय जटिलता O(m^3) है। डुप्लिकेट तत्वों को नियंत्रित करने के लिए अतिरिक्त स्थान की आवश्यकता हो सकती है।

दूसरी विधि:बढ़ते क्रम में मैट्रिक्स की सभी पंक्तियों को अलग-अलग व्यवस्थित या क्रमबद्ध करें। इसलिए हम 3 क्रमबद्ध सरणियों में सामान्य तत्वों को निर्धारित करने की समस्या के एक संशोधित दृष्टिकोण को लागू करते हैं। उसी के लिए एक कार्यान्वयन के बाद दिया गया है।

उदाहरण

// C++ implementation to find distinct elements
// common to all rows of a matrix
#include <bits/stdc++.h>
using namespace std;
const int MAX1 = 100;
// Shows function to individually sort
// each row in increasing order
void sortRows1(int mat1[][MAX1], int m){
   for (int i=0; i<m; i++)
   sort(mat1[i], mat1[i] + m);
}
// Shows function to find all the common elements
void findAndPrintCommonElements1(int mat1[][MAX1], int m){
   //Used to sort rows individually
   sortRows1(mat1, m);
   // Shows current column index of each row is stored
   // from where the element is being searched in
   // that row
   int curr_index1[m];
   memset(curr_index1, 0, sizeof(curr_index1));
   int f = 0;
   for (; curr_index1[0]<m; curr_index1[0]++){
      //Indicates value present at the current column index
      // of 1st row
      int value1 = mat1[0][curr_index1[0]];
      bool present1 = true;
      //Indicates 'value' is being searched in all the
      // subsequent rows
   for (int i=1; i<m; i++){
      // Used to iterate through all the elements of
      // the row from its current column index
      // till an element greater than the 'value'
      // is found or the end of the row is
      // encountered
      while (curr_index1[i] < m &&
      mat1[i][curr_index1[i]] <= value1)
      curr_index1[i]++;
      // Now if the element was not present at the column
      // before to the 'curr_index' of the row
      if (mat1[i][curr_index1[i]-1] != value1)
         present1 = false;
      // Now if all elements of the row have
      // been traversed
      if (curr_index1[i] == m){
         f = 1;
         break;
      }
   }
   // Now if the 'value' is common to all the rows
   if (present1)
      cout << value1 << " ";
   // Now if any row have been completely traversed
   // then no more common elements can be found
   if (f == 1)
      break;
   }
}
// Driver program to test above
int main(){
   int mat1[][MAX1] = { {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}};
   int m = 5;
   findAndPrintCommonElements1(mat1, m);
   return 0;
}

आउटपुट

2 4 15

  1. सरणी में सभी तत्व खोजें जिनमें C++ में कम से कम दो बड़े तत्व हों

    मान लीजिए, हमारे पास n संख्याओं की एक सरणी है। हमें सरणी में सभी तत्वों को खोजना होगा, जिनमें कम से कम दो बड़े तत्व हों। यदि सरणी A =[2, 8, 7, 1, 5] की तरह है, तो परिणाम [2, 1, 5] होगा। इसे हल करने के लिए, हम दूसरा अधिकतम तत्व ढूंढेंगे, फिर उन सभी तत्वों को प्रिंट करें जो दूसरे अधिकतम मान से कम या

  1. C++ में किसी सरणी के सभी अलग-अलग सबसेट (या बाद के) योग खोजें

    मान लीजिए कि हमारे पास पूर्णांकों का एक सेट है। दिए गए समुच्चयों के उपसमुच्चय से बनने वाले विशिष्ट योग ज्ञात कीजिए और उन्हें आरोही क्रम में मुद्रित कीजिए। सरणी तत्वों का योग छोटा है। विचार करें कि सरणी तत्व [1, 2, 3] जैसे हैं। आउटपुट 0, 1, 2, 3, 4, 5, 6 होगा। विशिष्ट उपसमुच्चय {}, {1}, {2}, {3}, {1,

  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] . होगा इसे हल करने के लिए, हम इन चरणों