496. 下一个更大元素 I

从代码来看,v1的作用就是用来映射一次,增加了一层映射

class Solution {
public:
    vector<int> nextGreaterElement(vector<int>&v1,vector<int>&v2) {
        vector<int>res(v1.size(),-1);
        unordered_map<int, int> m; // key:下标元素,value:下标
        for (int i = 0; i < v1.size(); i++) {
            m[v1[i]] = i;
        }
        vector<int>s;
        for(int i=0;i<v2.size();i++){
            while(!s.empty()&&v2[s.back()]<v2[i]){
                int idx = s.back();
                s.pop_back();
                if (m.find(v2[idx])!=m.end()){
                    res[m[v2[idx]]]=v2[i];
                }
            }
            s.push_back(i);
        }
        return res;
    }
};