diff --git a/work/Medium/Array/739.daily-temperatures.py b/work/Medium/Array/739.daily-temperatures.py new file mode 100644 index 0000000..00728d8 --- /dev/null +++ b/work/Medium/Array/739.daily-temperatures.py @@ -0,0 +1,50 @@ +""" +739. Daily Temperatures +Difficulty: Medium +https://leetcode.com/problems/daily-temperatures/ + +────────────────────────────────────────────────── + +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 i^th 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] + + + +Constraints: + + • 1 <= temperatures.length <= 10^5 + + • 30 <= temperatures[i] <= 100 +""" + + +class Solution: + def dailyTemperatures(self, temperatures: List[int]) -> List[int]: + ans = [0] * len(temperatures) + stack = [] + for i, temp in enumerate(temperatures): + while stack and temperatures[stack[-1]] < temp: + prev = stack.pop() + ans[prev] = i - prev + stack.append(i) + return ans