will you help me to correct the order
Next greater element(stack)
sir the question is different…it is next greater element
hi @abhinavssr2003_eab0717682969e5c refer
#include <bits/stdc++.h>
using namespace std;
// Function to print Next Greater Element for each element of the array
void nextGreater(int arr[], int n)
{
// Write Code here
stack<int> s;
int res[n];
for (int i = n - 1; i >= 0; i--) {
/* if stack is not empty, then
pop an element from stack.
If the popped element is smaller
than next, then
a) print the pair
b) keep popping while elements are
smaller and stack is not empty */
if (!s.empty()) {
while (!s.empty() && s.top() <= arr[i]) {
s.pop();
}
}
res[i] = s.empty() ? -1 : s.top();
s.push(arr[i]);
}
for (int i = 0; i < n; i++)
cout << arr[i] << "," << res[i] << endl;
}
// The Main Function
int main()
{
int t;
cin>>t;
while(t--){
int n;
cin>>n;
int arr[n];
for(int i=0; i<n; i++){
cin>>arr[i];
}
nextGreater(arr, n);
}
return 0;
}
I hope I’ve cleared your doubt. I ask you to please rate your experience here
Your feedback is very important. It helps us improve our platform and hence provide you
the learning experience you deserve.
On the off chance, you still have some questions or not find the answers satisfactory, you may reopen
the doubt.