leetcode 739 Daily Temperatures python
from typing import List
class Solution:
def dailyTemperatures(self, T: List[int]) -> List[int]:
if not T:
return []
result = []
bigus_t = T[-1]
n = len(T)
for i in range(n-1, -1, -1):
el = T[i]
if el >= bigus_t:
result.append(0)
bigus_t = el
else:
for j in range(i+1, n):
if T[j] > el:
result.append(j-i)
break
result.reverse()
return result
def dailyTemperatures(self, T: List[int]) -> List[int]:
result = []
stack = []
n = len(T)
for i in range(n-1, -1, -1):
while len(stack) and T[stack[-1]] <= T[i]:
stack.pop()
if len(stack) == 0:
result.append(0)
else:
result.append(stack[-1] - i)
stack.append(i)
result.reverse()
return result
if __name__ == "__main__":
s = Solution()
assert(s.dailyTemperatures([73, 74, 75, 71, 69, 72, 76, 73]) == [1,1,4,2,1,1,0,0])
assert(s.dailyTemperatures([89,62,70,58,47,47,46,76,100,70]) == [8,1,5,4,3,2,1,1,0,0])