LeetCode 496. 下一个更大元素 I

原题目:https://leetcode-cn.com/problems/next-greater-element-i/

 

思路:

单调栈

 

代码:

class Solution {
public:
    vector nextGreaterElement(vector& nums1, vector& nums2) {
        unordered_map  m;
        stack s;

        for(int i:nums2){
            if(s.empty()) s.push(i);
            else{
                while(!s.empty() && s.top() < i){
                    m[s.top()] = i;
                    s.pop();
                }
                s.push(i);
            }
        }

        vector ans;
        for(int i:nums1){
            ans.push_back(m[i]==0?-1:m[i]);
        }
        return ans;
    }
};

 

你可能感兴趣的:(LeetCode)