LC 0739 [M] Daily Temperatures - ALawliet/algorithms GitHub Wiki
class Solution:
def dailyTemperatures(self, temperatures: List[int]) -> List[int]:
n = len(temperatures)
answer = [0] * n
stack = []
for curr_day, curr_temp in enumerate(temperatures):
# Pop until the current day's temperature is not
# warmer than the temperature at the top of the stack
while stack and temperatures[stack[-1]] < curr_temp:
prev_day = stack.pop()
answer[prev_day] = curr_day - prev_day
stack.append(curr_day)
return answer