739. Daily Temperatures

Medium


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]

 

Constraints:

  • 1 <= temperatures.length <= 105
  • 30 <= temperatures[i] <= 100




 class Solution:
    def dailyTemperatures(self, temperatures: List[int]) -> List[int]:
#         self.stack = []
#         n = len(temperatures)
#         self.ans = [0]*n

#         for index, temp in enumerate(temperatures):

#             while self.stack and temperatures[self.stack[-1]] < temp:
#                 pop_index = self.stack.pop()
#                 self.ans[pop_index] = index-pop_index
#             self.stack.append(index)

#         return self.ans
        n = len(temperatures)
        ans = [0] * n
        hottest = 0
        for index in range(n-1, -1, -1):
            current_temp = temperatures[index]
            if current_temp >= hottest:
                hottest = temperatures[index]
                continue


            day = 1
            while temperatures[day+index] <= current_temp:
                day += ans[day+index]

            ans[index] = day
        return ans

Random Note


  1. Effectively Using Django REST Framework Serializers
  2. How To Use DRF Serializers Effectively in Django
  3. My personal django rest framework serializer notes
  4. How to use DRF serializers effectively during write operations