739. 每日温度
已解答
中等
相关标签
相关企业
提示
给定一个整数数组
temperatures,表示每天的温度,返回一个数组answer,其中answer[i]是指对于第i天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用0来代替。示例 1:
输入:temperatures= [73,74,75,71,69,72,76,73]输出:[1,1,4,2,1,1,0,0]示例 2:
输入:temperatures = [30,40,50,60]输出:[1,1,1,0]示例 3:
输入:temperatures = [30,60,90]输出:[1,1,0]提示:
1 <= temperatures.length <= 10530 <= temperatures[i] <= 100
class Solution { public: vector<int> dailyTemperatures(vector<int>& temperatures) { int len = temperatures.size(); vector<int> res(len); stack<pair<int, int>> stk; for(int i=len-1; i>=0; --i){ pair<int, int> num = {0, 0}; while(!stk.empty()){ num = stk.top(); if(temperatures[i] >= num.first){ stk.pop(); num.second = 0; } else break; } res[i] = num.second == 0 ? 0 : num.second - i; stk.push({temperatures[i], i}); } return res; } };