本文主要是介绍【LeetCode刷题】739. 每日温度(单调栈),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
- 1. 题目链接
- 2. 题目描述
- 3. 解题方法
- 4. 代码
1. 题目链接
739. 每日温度
2. 题目描述
3. 解题方法
- 用一个栈st保存每个数的下标,同时创建一个数组res保存结果,初始值都为0。
- 循环遍历题目中的数组temperature。
- 如果temperature[i] > st.top(),证明碰到了下一个更高温度。
- 此时弹出st.top(),然后记录结果。
- 记得将遍历的temperature[i]的下标放入栈中。
4. 代码
class Solution {
public:vector<int> dailyTemperatures(vector<int>& temperatures) {stack<int> st;int n = temperatures.size();vector<int> res(n);for(int i = 0; i < n; i++){while(!st.empty() && temperatures[st.top()] < temperatures[i]){int top = st.top();st.pop();res[top] = i - top;}st.push(i);}return res;}
};
最后附上我的打卡记录,希望各位大佬可以监督我。
这篇关于【LeetCode刷题】739. 每日温度(单调栈)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!