题目描述
给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。
网址:https://leetcode.cn/problems/daily-temperatures/description
新数据结构学习
单调栈,常用于判断最大最小数
从栈底到栈顶,元素逐渐增大或减小
常用操作:
- 初始化 std::stack<int> stk
- push: stk.push(x)
- pop: stk.pop()
- 索引栈顶元素: stk.top()
- 判断是否为空:stk.empty()
解题思路
从后往前遍历温度数组中的元素,并维护一个单调栈,从栈底到栈顶大小逐渐递减。注意,栈中存的其实是温度对应的下标。
class Solution {
public:
vector<int> dailyTemperatures