每日一题:LeetCode-739. 每日温度

刷题使我快乐,满脸开心.jpg
来源:力扣(LeetCode)
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
题目
给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。
示例 1:
复制代码
示例 2:
复制代码
示例 3:
复制代码
提示:
1 <= temperatures.length <= 10530 <= temperatures[i] <= 100
思路
这个题目直接暴力肯定是没有问题,那么最大的问题就在于如何优化了
单调栈
之前也分享过几个单调栈的题目,有必要可以顺着标签过去看看哈~
熟悉这种思路的话,应该能够很快想到单调栈
单调栈本身也确实很适合应对这种找下一个更大、更小元素的问题:
一个个元素遍历
栈内元素比当天温度低的,弹出,并且也就可以记录结果了
直到遇到比当天温度高的或者栈空了,那就直接入栈,等待后续天的数据
基本代码思路就是这样啦,直接上代码,细节在注释了
代码
复制代码
欢迎关注公众号交流更多题目~
版权声明: 本文为 InfoQ 作者【半亩房顶】的原创文章。
原文链接:【http://xie.infoq.cn/article/8f0cefcc828fb4f97d00310aa】。文章转载请联系作者。







评论