Python的每日温度
假设我们有一个每日温度T的列表,我们必须返回一个列表,以便对于输入中的每一天,显示出要等到温度升高才需要多少天。如果没有将来的日子可以使用,则存储0。例如,如果T=[73、74、75、71、69、72、76、73],则输出将为[1、1、4、2、1、1、0、0]。
为了解决这个问题,我们将遵循以下步骤-
ans:=与T大小相同的数组,并用0填充
定义一个堆栈,然后将0插入堆栈,然后i:=1
而我<T的长度
将我插入堆栈
index:=堆栈顶部元素
ans[index]:=i–索引
从堆栈中删除顶部元素
而堆栈元素计数不为0且T[i]>T[堆栈顶部元素]
如果堆栈长度为0或T[i]<=T[堆栈顶部元素]
使我增加1
返回ans
示例(Python)
让我们看下面的实现以更好地理解-
class Solution(object):
def dailyTemperatures(self, T):
ans = [0 for i in range(len(T))]
stack = []
stack.append(0)
i=1
while i <len(T):
while len(stack) and T[i]>T[stack[-1]]:
index = stack[-1]
ans[index] = i-index
stack.pop()
if not len(stack) or T[i]<=T[stack[-1]]:
stack.append(i)
i+=1
return ans
ob1 = Solution()print(ob1.dailyTemperatures([73,74,75,71,69,72,76,73]))输入值
[73,74,75,71,69,72,76,73]
输出结果
[1, 1, 4, 2, 1, 1, 0, 0]
热门推荐
10 香港老妈结婚祝福语简短
11 毕业立体贺卡祝福语简短
12 简短新年年会祝福语
13 评论小品祝福语大全简短
14 恭喜师兄结婚祝福语简短
15 员工集体辞职祝福语简短
16 高中新生祝福语 简短
17 装修祝福语男生搞笑简短
18 生日开业蛋糕祝福语简短