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

C প্রোগ্রামে অ্যারেতে উপাদানগুলোর শেষ অকরেন্স রিলেটিভ অর্ডারে প্রিন্ট করা


ভূমিকা

একটি অ্যারে দেওয়া থাকলে, প্রতিটি উপাদানের শেষ অকরেন্স (last occurrence) মাত্র প্রিন্ট করতে হবে, এবং তাদের আপেক্ষিক ক্রম (relative order) বজায় রাখতে হবে। অর্থাৎ, যে উপাদানটি সবশেষে এসে থেমেছে, সেটি আগে প্রিন্ট হবে।

উদাহরণ

ইনপুট: {4,2,2,4,1,5,1}
শেষ অকরেন্স: 2(ইন্ডেক্স ২), 4(ইন্ডেক্স ৩), 5(ইন্ডেক্স ৫), 1(ইন্ডেক্স ৬)
আউটপুট: 2 4 5 1

এলগরিদম

void printElements(int a[], int n)
শুরু
  unordered_map lastPos
  i = 0 থেকে n-1: lastPos[a[i]] = i  // প্রতিটি উপাদানের শেষ পজিশন সংরক্ষণ
  i = 0 থেকে n-1:
    যদি lastPos[a[i]] == i হয়: a[i] প্রিন্ট করুন
শেষ

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

#include 
using namespace std;

void printElements(int a[], int n) {
    unordered_map lastPos;
    for (int i = 0; i < n; i++) lastPos[a[i]] = i;
    for (int i = 0; i < n; i++)
        if (lastPos[a[i]] == i) cout << a[i] << " ";
}

int main() {
    int a[] = {4,2,2,4,1,5,1};
    int n = sizeof(a)/sizeof(a[0]);
    printElements(a, n);
    return 0;
}

আউটপুট

2 4 5 1
  1. C প্রোগ্রামে অ্যারে লেফ্ট রোটেশন O(n) টাইম ও O(1) স্পেসে

  2. লিস্টের অড ইনডেক্স (০-ভিত্তিক) এলিমেন্ট প্রিন্ট করার পাইথন প্রোগ্রাম

  3. পাইথন প্রোগ্রাম: অ্যারের উপাদানগুলো বিপরীত ক্রমে প্রিন্ট করা

  4. পাইথন প্রোগ্রাম: অ্যারের ডুপ্লিকেট উপাদানগুলো প্রিন্ট করা