class Solution {
public:
vector<int> dailyTemperatures(vector<int>& temperatures) {
stack<int> stc;
vector<int> ans(temperatures.size(), 0);
for (int i = 0; i < temperatures.size(); i++) {
int temperature = temperatures[i]; // 当天温度
while (!stc.empty() && temperature > temperatures[stc.top()]) { // 出现了更
//高的温度,开始收集结果
int top = stc.top();//获取当前栈顶元素
ans[top] = i - top;//当前位置和栈顶元素相差的天数
stc.pop();//将当前栈顶元素弹出
}
// 直到所有低于当前温度的都已弹出,入栈当天下标
stc.push(i);
}
return ans;
}
};
leecode LCR 038 每日温度问题
最新推荐文章于 2024-08-24 23:00:16 发布