diff --git a/apps/docs/content/(array)/739-daily-temperatures.mdx b/apps/docs/content/(array)/739-daily-temperatures.mdx new file mode 100644 index 0000000..56ccefb --- /dev/null +++ b/apps/docs/content/(array)/739-daily-temperatures.mdx @@ -0,0 +1,41 @@ +--- +title: '739. Daily Temperatures' +description: 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 +sidebar: + label: 'Daily Temperatures' + badge: 'Medium' +--- + +Monotonic Stack + +### 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` + +## Solution + +```py +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 +```