ভূমিকা
একটি অ্যারে দেওয়া থাকলে, প্রতিটি উপাদানের শেষ অকরেন্স (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_maplastPos i = 0 থেকে n-1: lastPos[a[i]] = i // প্রতিটি উপাদানের শেষ পজিশন সংরক্ষণ i = 0 থেকে n-1: যদি lastPos[a[i]] == i হয়: a[i] প্রিন্ট করুন শেষ
C++ প্রোগ্রাম উদাহরণ
#includeusing 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