leetcode 64 Next Greater Element I C++

来源:互联网 发布:阿里云账号和淘宝账号 编辑:程序博客网 时间:2024/06/08 07:44

遍历第二个数组,用一个栈来构建一个数字和next greater一一对应的map即可。

    vector<int> nextGreaterElement(vector<int>& findNums, vector<int>& nums) {        stack<int> st;        unordered_map<int,int> mp;        vector<int> vec;        for (int i : nums) {            while(!st.empty()) {                int num = st.top();                if(i>num) {                    mp[num] = i;                    st.pop();                } else {                    break;                }            }            st.push(i);        }                for (int i : findNums) {            if (mp.find(i) == mp.end()) {                vec.push_back(-1);            } else {                vec.push_back(mp[i]);            }        }        return vec;    }


0 0
原创粉丝点击