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

অ্যারেতে প্রথম সম সংখ্যক বার আসা উপাদান বের করা (C++)


সমস্যা বিবরণ

একটি অ্যারে arr[] দেওয়া হয়েছে যার মাপ N। আমাদের কাজ হল অ্যারেতে প্রথম যে উপাদানটি সম সংখ্যকবার আসেছে তা বের করা। যদি নেই তবে -1 ফেরত দেওয়া।

উদাহরণ

ইনপুট: arr[] = {2, 3, 7, 2, 3, 6, 4, 1, 2}
আউটপুট: 3

সমাধানের পদ্ধতি

হ্যাশ ম্যাপ (unordered_map) ব্যবহার করে প্রতিটি উপাদানের ফ্রিকোয়েন্সি ট্র্যাক করা। ম্যাপে টগল (true/false) রেখে সম/বিষম ফ্রিকোয়েন্সি চেক করা।

প্রোগ্রাম উদাহরণ

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

int findFirstEvenFreqVal(int arr[], int n) {
    unordered_map<int, bool> freqTogMap;
    for (int i = 0; i < n; i++) {
        if (freqTogMap.find(arr[i]) == freqTogMap.end())
            freqTogMap[arr[i]] = false;
        else
            freqTogMap[arr[i]] = !freqTogMap[arr[i]];
    }
    for (int j = 0; j < n; j++)
        if (freqTogMap[arr[j]] == true)
            return arr[j];
    return -1;
}

int main() {
    int arr[] = {2, 4, 6, 8, 1, 6};
    cout << "প্রথম সম ফ্রিকোয়েন্সি वाला উপাদান: " << findFirstEvenFreqVal(arr, 6);
    return 0;
}

আউটপুট

প্রথম সম ফ্রিকোয়েন্সি वाला উপাদান: 6
  1. সি++ প্রোগ্রাম: বাইনারি অ্যারে পার্টিশন করতে ন্যূনতম টগল (0s তারপর 1s)

  2. অ্যারেতে এমন মৌলিক সংখ্যা K খুঁজে বের করা যাতে (A[i] % K) সর্বোচ্চ হয় C++-তে

  3. C++ ব্যবহার করে অ্যারেতে এমন এলিমেন্ট বের করা যেটি সব এলিমেন্টকে ভাগ করে দেয়

  4. C++-এ অ্যারেতে ন্যূনতম সংখ্যা যোগ করে যোগফল জোড় করার পদ্ধতি