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

ইনপুট অর্ডার অনুযায়ী পরবর্তী বড় উপাদান বের করা - সি++

একটি অ্যারেতে প্রতিটি উপাদানের পরবর্তী বড় উপাদান বের করে ইনপুট অর্ডার অনুযায়ী আউটপুট দিতে হবে।

অ্যালগরিদম (রিভার্স ট্রাভার্সাল + স্ট্যাক)

  • অ্যারের শেষ থেকে শুরু করুন।
  • স্ট্যাক দিয়ে পরবর্তী বড় উপাদান ট্র্যাক করুন।
  • রেজাল্ট অ্যারেতে সংরক্ষণ করুন।
  • শেষে ফরওয়ার্ড প্রিন্ট করুন।

সি++ ইমপ্লিমেন্টেশন

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

void nextGreaterElements(int arr[], int n) {
    stack s;
    int result[n];
    for (int i = n - 1; i >= 0; i--) {
        while (!s.empty() && s.top() <= arr[i]) s.pop();
        result[i] = s.empty() ? -1 : s.top();
        s.push(arr[i]);
    }
    for (int i = 0; i < n; i++) {
        cout << arr[i] << " -> " << result[i] << endl;
    }
}

int main() {
    int arr[] = {1, 2, 3, 4, 5};
    int n = 5;
    nextGreaterElements(arr, n);
    return 0;
}

আউটপুট

1 -> 2
2 -> 3
3 -> 4
4 -> 5
5 -> -1
  1. C++-এ দুটি অ্যারে থেকে ক্রম রক্ষা করে সর্বোচ্চ অ্যারে তৈরি

  2. C++-এ মিন হিপে সর্বোচ্চ উপাদান

  3. দ্বিতীয় অ্যারের সব উপাদান একই ক্রমে থাকা ন্যূনতম সাবঅ্যারে (C++)

  4. সি++ প্রোগ্রাম: অ্যারেতে প্রতিটি উপাদানের জন্য সবচেয়ে নিকটবর্তী বড় মান (Closest Greater Value) খুঁজে বের করা