সমস্যা বিবরণ
একটি অ্যারে 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