每日一题:每日温度(LeetCode 739)

题目

给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指在第 i 天之后,才会有更高的温度。如果气温在这之后都不会升高,请在该位置用 0 来代替。

示例
输入: temperatures = [73,74,75,71,69,72,76,73]
输出: [1,1,4,2,1,1,0,0]

解答

class Solution {
public:
    vector<int> dailyTemperatures(vector<int>& temperatures) {
        //使用栈来记录下标
        stack<int> stk;
        vector<int> res(temperatures.size());

        for(int i = 0; i < temperatures.size(); i++)
        {
            //如果当前元素大于栈顶元素,则计算
            while(stk.size() && temperatures[i] > temperatures[stk.top()])
            {
                res[stk.top()] = i-stk.top();
                stk.pop();
            }
            stk.push(i);

        }

        return res;
    }
};
扫描关注程序区
THE END
分享
二维码
打赏
海报
每日一题:每日温度(LeetCode 739)
题目 给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指在第 i 天之后,才会有更高的温度。如果气温在这之后都不……
<<上一篇
下一篇>>