i am getting error in next greater element question using stack https://ide.codingblocks.com/s/660806
Segmentation fault
hi @abhishekchoudhary05112000_e0b1866595b5a9d4
Have a look at the corrected code–>
#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.