单调栈(此题是递减栈——栈里只有递减元素),用一个栈装数组下标。 具体操作: 遍历一次数组,对应数组元素若大于栈顶元素(如果有元素),如果直接将该数组元素元素入栈,则【递减栈】不成立,所以不能将数组元素入栈——当前下标和【栈顶元素所在数组的下标】的差,最后将栈顶元素出栈; 继续将数组元素和新的栈顶元素...
[LeetCode]739. 每日温度(单调栈) 题目 根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。 例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, ...
方法一:单调栈# 使用一个单调递减栈, 每次遇到一个比栈顶元素大的元素的数之和, 都可以计算栈内的比当前元素的小的元素的等待的天数。当遍历完成后, 栈内如果还有元素, 则说明, 栈内的这些元素的后面, 没有比他大的数。则填充为0。 publicint[] dailyTemperatures(int[] T) {Stack<Integer> stack =new...
也是将当前元素入栈。 情况三:当前遍历的元素T[i]大于栈顶元素T[st.top()]的情况 将栈顶元素出栈,并计算距离,继续查看当前元素是否大于栈顶元素,如果大于,继续将栈顶元素出栈,并计算距离,直到当前元素小于栈顶元素,将当前元素出栈。 代码 /** @lc app=leetcode.cn id=739 lang=cpp** [739] 每日温度*/...
今天分享的内容LeetCode中739.每日温度这个题目。 题目描述: 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 请根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。
题目链接:739. 每日温度 - 力扣(LeetCode) 题目思路: 利用上述单调栈的思路 我们在单调栈中存下标,进行比较的时候如果小于等于nums[栈顶元素]直接让其入栈,大于的话就将栈顶元素作为结果数组的下标,返回两者差值,切记:要将当前元素继续比较,直到不能比较为止,所以这里用的是while而不是if(也要记得不能比之后将...
leetcode单调栈-每日温度 importjava.util.Stack; /** <p>给定一个整数数组 <code>temperatures</code> ,表示每天的温度,返回一个数组 <code>answer</code> ,其中 <code>answer[i]</code> 是指在第 <code>i</code> 天之后,<span style="font-size:10.5pt"><span style="font-family:Calibri"><span...
code classSolution{public:vector<int>dailyTemperatures(vector<int>& T){intn=T.size();vector<int>ans(n,0);stack<int> s;for(inti=n-1;i>=0;i--){while(s.size()>0&& T[s.top()]<=T[i]){ s.pop(); }if(s.empty()){
leetcode739 每日温度 根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用0来代替。 例如,给定一个列表 temperatures= [73,74,75,71,69,72,76,73],你的输出应该是 [1,1,4,2,1,1,0,0]。