leetcode739. 每日温度

分析

单调栈:
当栈不空并且此时第i天温度比栈顶温度低时,将这天温度的下标i存入栈中,否则说明此时第i天温度已经比栈顶第j天温度高了,则将栈顶j的那一天所需等待的天数为i-j。

class Solution {
public:
    vector<int> dailyTemperatures(vector<int>& temperatures) {
        int n=temperatures.size();
        stack<int> st;
        vector<int>ans(n);
        for(int i=0;i<n;i++){
            while(!st.empty()&&temperatures[st.top()]<temperatures[i]){
                int j=st.top();
                ans[j]=i-j;
                st.pop();
            }
            st.push(i);
        }
        return ans;
    }
};