← All problems

739. Daily Temperatures

MediumOpen on LeetCodeProblem statement

Problem Statement

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:

C++

Source file
class Solution {
public:
    vector<int> dailyTemperatures(vector<int>& temperatures) {
        stack <pair<int, int>> stk;
        vector<int> res(temperatures.size(), 0);
        for(int i=0; i<temperatures.size(); i++){
            while(!stk.empty() && temperatures[i]>stk.top().first){
                res[stk.top().second]=i-stk.top().second;
                stk.pop();
            }
            stk.push({temperatures[i], i});
        }
        return res;
    }
};