-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdaily-temperatures_739.py
33 lines (25 loc) · 1.03 KB
/
daily-temperatures_739.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# Given an array of integers temperatures represents the daily temperatures,
# return an array answer such that answer[i] is the number of days you have to
# wait after the ith day to get a warmer temperature. If there is no future day
# for which this is possible, keep answer[i] == 0 instead.
# Example 1:
# Input: temperatures = [73,74,75,71,69,72,76,73]
# Output: [1,1,4,2,1,1,0,0]
# Example 2:
# Input: temperatures = [30,40,50,60]
# Output: [1,1,1,0]
# Example 3:
# Input: temperatures = [30,60,90]
# Output: [1,1,0]
# ---------------------------------------Runtime 1339 ms Beats 69.90% Memory 32.7 MB Beats 5.43%---------------------------------------
# My solution
class Solution:
def dailyTemperatures(self, temperatures: list[int]) -> list[int]:
ans = [0] * len(temperatures)
stack = []
for i, t in enumerate(temperatures):
while stack and stack[-1][1] < t:
num_ind, _ = stack.pop()
ans[num_ind] = i - num_ind
stack.append([i, t])
return ans