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