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

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


সমস্যা বিবরণ

একটি অ্যারে arr[] (সাইজ n) দেওয়া আছে। আমাদের কাজ হল অ্যারেতে প্রথম যে উপাদানটি একাধিকবার আসেছে তা বের করা।

উদাহরণ

ইনপুট: {4,1,8,9,7,2,1,6,4}
আউটপুট: 4
ব্যাখ্যা: ৪ এবং ১ রিপিট হয়েছে। ৪-এর প্রথম অকারেন্স ১-এর চেয়ে আগে।

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

হ্যাশ সেট ব্যবহার করে ডান থেকে বামে ট্রাভার্সাল। ভিজিটেড সেটে থাকলে সেই ইনডেক্স সেভ করা। সবচেয়ে বামের ইনডেক্সই উত্তর।

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

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

int firstRepeating(int arr[], int n) {
    unordered_set<int> vis;
    int ansIdx = -1;
    for(int i=n-1;i>=0;i--){
        if(vis.count(arr[i])) ansIdx=i;
        else vis.insert(arr[i]);
    }
    return (ansIdx==-1)? -1 : arr[ansIdx];
}

int main() {
    int arr[]={4,1,6,3,4,1,5,8};
    cout << firstRepeating(arr,8); // 4
    return 0;
}

আউটপুট

4
  1. C++ ব্যবহার করে অ্যারেতে একটি সংখ্যার ফ্রিকোয়েন্সি বের করা

  2. অ্যারে উপাদানগুলোর সারপাসার (Surpasser) কাউন্ট (C++)

  3. C++ প্রোগ্রাম: অ্যারে উপাদানগুলোর গুণফলের প্রথম ডিজিট বের করা

  4. C++ প্রোগ্রাম: অ্যারে পার্টিশনিং মেথড দিয়ে kth সবচেয়ে ছোট এলিমেন্ট বের করা