这道题要好好看题,nums1是nums2的子集,而且nums2中无重复元素
class Solution {public:vector<int> nextGreaterElement(vector<int>& nums1, vector<int>& nums2) {if(!nums1.size() || !nums2.size()) return vector<int>();map<int, int> mp;stack<int> stk;for(int i = 0; i < nums2.size(); i++){while(stk.size() && stk.top() < nums2[i]){mp[stk.top()] = nums2[i];stk.pop();}// if(!stk.size() || stk.top() > nums2[i])stk.push(nums2[i]);}while(stk.size()){mp[stk.top()] = -1;stk.pop();}vector<int> res;for(auto x: nums1){res.push_back(mp[x]);}return res;}};
