496. 下一个更大元素 I
- 用map记录num2中元素的下一个最大元素
- 再遍历num1,查找num1中的元素是否在map中
class Solution {
public:
vector<int> nextGreaterElement(vector<int>& nums1, vector<int>& nums2) {
stack<int> st;
unordered_map<int,int> map;
vector<int> result(nums1.size(),-1);
for(int i=0;i<nums2.size();i++)
{
while(!st.empty() && nums2[i]>st.top())
{
map[st.top()]=nums2[i];
st.pop();
}
st.push(nums2[i]);
}
for(int i=0;i<nums1.size();i++)
{
if(map[nums1[i]] != 0)
result[i] = map[nums1[i]];
}
return result;
}
};