单调栈
方法一暴力
对于每个元素而言,都可以向右遍历找到第一个比他的元素返回下标差即可
复杂度分析
方法二单调栈
从左到右创建一个单调递减栈。单调栈的说明可以看这篇文章单调栈
参考代码
class Solution:def dailyTemperatures(self, temperatures: List[int]) -> List[int]:length = len(temperatures)stack,res = [],[0] * lengthfor i in range(length):while stack and temperatures[stack[-1]] < temperatures[i]:index = stack.pop()res[index] = i - indexstack.append(i)return res
复杂度分析
时间复杂度O(n)
空间复杂度O(n)
