কম্পিউটার টিউটোরিয়াল

ম্যাট্রিক্সের প্রতিটি সারিতে অ্যারে উপাদান গণনা C++-এ

একটি অ্যারে এবং একটি ২D ম্যাট্রিক্স দেওয়া থাকলে, ম্যাট্রিক্সের প্রতিটি সারিতে অ্যারের কতটি উপাদান আছে তা গণনা করতে হবে।

উদাহরণ

অ্যারে: [2, 4, 6]

ম্যাট্রিক্স:

2 4 6
3 4 6
6 2 1

আউটপুট:

  • সারি ১: ৩টি (2, 4, 6)
  • সারি ২: ২টি (4, 6)
  • সারি ৩: ২টি (6, 2)

অ্যালগরিদম

  1. সাধারণ (O(row × col × arrSize)): তিনটি নেস্টেড লুপ।
  2. দক্ষ (O(row × col + row × arrSize)): প্রতিটি সারির উপাদানগুলো unordered_set-এ রাখুন, তারপর অ্যারের উপাদান চেক করুন।

C++ কোড উদাহরণ (দুই পদ্ধতি)

#include <bits/stdc++.h>
using namespace std;

#define ROW 3
#define COL 3

// Naive approach
void countNaive(int matrix[ROW][COL], int arr[], int size) {
    for (int i = 0; i < ROW; i++) {
        int count = 0;
        for (int k = 0; k < size; k++) {
            for (int j = 0; j < COL; j++) {
                if (arr[k] == matrix[i][j]) count++;
            }
        }
        cout << "Row " << i+1 << ": " << count << endl;
    }
}

// Efficient approach using unordered_set
void countEfficient(int matrix[ROW][COL], int arr[], int size) {
    for (int i = 0; i < ROW; i++) {
        unordered_set rowSet;
        for (int j = 0; j < COL; j++)
            rowSet.insert(matrix[i][j]);
        
        int count = 0;
        for (int k = 0; k < size; k++)
            if (rowSet.count(arr[k])) count++;
        
        cout << "Row " << i+1 << ": " << count << endl;
    }
}

int main() {
    int matrix[ROW][COL] = {{2,4,6}, {3,4,6}, {6,2,1}};
    int arr[] = {2, 4, 6};
    int size = sizeof(arr) / sizeof(arr[0]);
    
    cout << "Naive:\n"; countNaive(matrix, arr, size);
    cout << "\nEfficient:\n"; countEfficient(matrix, arr, size);
    return 0;
}

ইনপুট

arr=[2,4,6], matrix=[[2,4,6],[3,4,6],[6,2,1]]

আউটপুট

Row 1: 3
Row 2: 2
Row 3: 2
  1. সি++-এ অ্যারেতে একটি কী (Key) থাকার প্রোবাবিলিটি বের করার প্রোগ্রাম

  2. C++-এ সোর্টেড অ্যারেতে ছোট এলিমেন্ট গণনা

  3. C++-এ অ্যারেতে জোড় ও বিজোড় উপাদান গণনা (Count Even and Odd Elements in Array)

  4. অ্যারের সব এলিমেন্ট ৪ দিয়ে বিভাজ্য করার ন্যূনতম ধাপ C++-তে