class Solution:
def dailyTemperatures(self, T: List[int]) -> List[int]:
n = len(T)
if n == 1:
return [0]
res = [0] * n #结果集,初始为0
stack = [0] #栈,存储下标
for i in range(1, n):
#比较当前温度与栈顶下标指示的温度
while len(stack) > 0 and T[i] > T[stack[-1]]:
res[stack[-1]] = i - stack[-1] #计算差值
stack.pop()
stack.append(i) #每次入栈一个
return res
class Solution:
def dailyTemperatures(self, t) :
n = len(t)
res = [0]*n
stack = []
for i in range(n-1, -1, -1): #元素依次入栈
#栈非空,且扫到不小于栈顶的,则弹栈
while stack and t[stack[-1]] <= t[i]:
stack.pop()
res[i] = stack[-1] - i if stack else 0
stack.append(i)
return res