下一个更大元素
使用单调栈 逆序遍历num2,得到nums2中当前位置处下一个更大的元素值。使用Map保存该元素对应的目标值
class Solution {
public:
vector<int> nextGreaterElement(vector<int>& nums1, vector<int>& nums2) {
vector<int> res;
std::stack<int> st;
std::unordered_map<int, int> numMap;
for(int i = nums2.size()-1; i>=0; --i)
{
while(!st.empty() && nums2[i]>=st.top())
{
st.pop();
}
if(!st.empty())
{
numMap.insert(make_pair(nums2[i],st.top()));
}
else
{
numMap.insert(make_pair(nums2[i],-1));
}
st.push(nums2[i]);
}
for(int i=0;i<nums1.size(); ++i)
{
res.push_back(numMap[nums1[i]]);
}
return res;
}
};