棧與每日溫度

2021-10-04 06:31:30 字數 828 閱讀 2843

根據每日 氣溫 列表,請重新生成乙個列表,對應位置的輸出是需要再等待多久溫度才會公升高超過該日的天數。如果之後都不會公升高,請在該位置用 0 來代替。

例如,給定乙個列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的輸出應該是 [1, 1, 4, 2, 1, 1, 0, 0]。

# a = [0]*len(t) #大量資料進行判斷時會超出時間限制,效率低下

# for i in range(0,len(t)):

# for j in range(i+1,len(t)):

# if t[j] > t[i]:

# a[i] = j-i

# break

# else:

# continue

# return a

a =

b =[0

]*len(t)

for i in

range(0

,len

(t))

:#當前元素小於列表最後乙個索引座標表示的元素時,將元素索引入棧

while a and t[i]

> t[a[-1

]]:#a列表不為空且當前索引元素大於列表最後乙個索引座標表示的元素時,出棧

#t = a.pop()

b[a.pop()]

= i - a[-1

]#用索引差值替換b列表中相應的索引位置的值

return b

演算法 棧 每日溫度

根據每日 氣溫 列表,請重新生成乙個列表,對應位置的輸出是需要再等待多久溫度才會公升高超過該日的天數。如果之後都不會公升高,請在該位置用 0 來代替。例如,給定乙個列表 temperatures 73,74,75,71,69,72,76,73 你的輸出應該是 1,1,4,2,1,1,0,0 最直觀的...

單調棧 每日溫度

題目 根據每日 氣溫 列表,請重新生成乙個列表,對應位置的輸出是需要再等待多久溫度才會公升高超過該日的天數。如果之後都不會公升高,請在該位置用 0 來代替。例如,給定乙個列表 temperatures 73,74,75,71,69,72,76,73 你的輸出應該是 1,1,4,2,1,1,0,0 思...

739 每日溫度 遞減棧

根據每日氣溫列表,請重新生成乙個列表,對應位置的輸入是你需要再等待多久溫度才會公升高的天數。如果之後都不會公升高,請輸入0來代替。例如,給定乙個列表temperatures 73,74,75,71,69,72,76,73 你的輸出應該是 1,1,4,2,1,1,0,0 氣溫列表長度的範圍是 1,30...