分析
单调栈:
当栈不空并且此时第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;
}
};