重庆网站推广外包,手机版免费申请微网站,苏州建设信息网站,平面广告设计论文每日温度 leetcode链接#xff1a;力扣题目链接 视频链接#xff1a;单调栈#xff0c;你该了解的#xff0c;这里都讲了#xff01;LeetCode:739.每日温度、 给定一个整数数组 temperatures #xff0c;表示每天的温度#xff0c; 返回一个数组 answer #xff0c;其中…每日温度 leetcode链接力扣题目链接 视频链接单调栈你该了解的这里都讲了LeetCode: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]
首先看暴力解法两重循环最后超时了 class Solution { public: vector dailyTemperatures(vector temperatures) { vector res(temperatures.size(), 0); for(int i 0; i temperatures.size(); i){ for(int j i 1; j temperatures.size();j){ if(temperatures[j] temperatures[i]){ res[i] j - i; break; } } } return res; } }; 单调栈解法 单调栈的作用对于一维数组可以 方便的找到右边第一个比他大/小的元素是什么。 单调栈就是一个栈里面存放下标。 遍历顺序从栈顶到栈口的顺序递增或者递减。 如果是递增求得就是第一个比它大的元素的位置 如果是递减求得就是第一个比它小的元素的位置