每日一题:每日温度(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
                    
                    
                    0
        
                        二维码        
                    
                                打赏            
                    
                        海报        
        
            
             
        每日一题:每日温度(LeetCode 739)
            
                题目
给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指在第 i 天之后,才会有更高的温度。如果气温在这之后都不……            
             
                 
            
共有 0 条评论