欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

力扣【每日温度】leetcode-739.每日温度:单调栈解法

发布时间:2025/3/20 47 豆豆
生活随笔 收集整理的这篇文章主要介绍了 力扣【每日温度】leetcode-739.每日温度:单调栈解法 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

题目描述:


通俗一点就是,从当前开始,往后看,看到升温的那一天目前需要等多久~

思路:

单调栈解法:参考下一个更大元素leetcode 503题的思路以及解法
不同之处在于,题目要求返回的不是原来数组的值了 ,而是“距离”,所以需要调整一下,数组存放的应该是索引

class Solution { public:vector<int> dailyTemperatures(vector<int>& T) {vector<int> res(T.size());//存放的是索引stack<int> s;//使用单调栈for (int i = T.size() - 1; i >= 0; i --) {while(!s.empty() && T[s.top()] <= T[i] ) {s.pop();}res[i] = s.empty() ? 0 : (s.top() - i);//s.top() - i 就是距离了s.push(i);}return res;} };

结果:


总结:单调栈解法的巧妙使用~

总结

以上是生活随笔为你收集整理的力扣【每日温度】leetcode-739.每日温度:单调栈解法的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。