কম্পিউটার

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++ এ একটি ম্যাট্রিক্সে প্রতিটি কলামের সর্বোচ্চ উপাদান খুঁজুন

  2. C++ এ একটি প্রদত্ত স্ট্রিং-এ “1(0+)1”-এর সমস্ত প্যাটার্ন খুঁজুন

  3. C++ এ প্রদত্ত সেটের সমস্ত স্বতন্ত্র উপসেট খুঁজুন

  4. পাইথনে একটি ম্যাট্রিক্সের সমস্ত সারিতে সাধারণ স্বতন্ত্র উপাদানগুলি খুঁজুন