Advertisement
nikunjsoni

503

Mar 25th, 2021
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.72 KB | None | 0 0
  1. class Solution {
  2. public:
  3.     vector<int> nextGreaterElements(vector<int>& nums) {
  4.         stack< pair<int, int> > s;
  5.         int sz = nums.size();
  6.         vector<int> ans(sz, -1);
  7.        
  8.         for(int i=0; i<sz; i++){
  9.             while(!s.empty() && s.top().first < nums[i]){
  10.                 pair<int, int> tmp = s.top();
  11.                 s.pop();
  12.                 ans[tmp.second] = nums[i];
  13.             }
  14.             s.push(make_pair(nums[i], i));
  15.         }
  16.         for(int i=0; i<sz; i++){
  17.             while(!s.empty() && s.top().first < nums[i]){
  18.                 pair<int, int> tmp = s.top();
  19.                 s.pop();
  20.                 ans[tmp.second] = nums[i];
  21.             }
  22.         }
  23.         return ans;
  24.     }
  25. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement