一、题目
二、思路
单调递减栈(从栈底到栈顶方向递减) + 哈希表
三、编码
class Solution {
public:
vector<int> nextGreaterElement(vector<int>& nums1, vector<int>& nums2) {
vector<int> ans(nums1.size());
stack<int> st;
unordered_map<int, int> mp;
for (int i = nums2.size() -1; i >= 0; i--) {
int num = nums2[i];
while (!st.empty() && num > st.top()) {
st.pop();
}
mp[num] = st.empty() ? -1 : st.top();
st.push(num);
}
for (int i = 0; i < nums1.size(); i++) {
ans[i] = mp[nums1[i]];
}
return ans;
}
};