Skip to content

Latest commit

 

History

History

s0739_daily_temperatures

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

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

Solution

# @param {Integer[]} temperatures
# @return {Integer[]}
def daily_temperatures(temperatures)
  sol = Array.new(temperatures.length, 0)
  (temperatures.length - 2).downto(0) do |i|
    j = i + 1
    while j <= temperatures.length
      if temperatures[i] < temperatures[j]
        sol[i] = j - i
        break
      else
        break if sol[j].zero?

        j += sol[j]
      end
    end
  end
  sol
end