代码随想录算法训练营day58 | 您所在的位置:网站首页 › 鲨鱼解剖pdf › 代码随想录算法训练营day58 |
代码随想录算法训练营day58 | 739. 每日温度,496.下一个更大元素 I
739. 每日温度解法一:单调栈(视频版)解法二:单调栈(自己写的,反向遍历)
496.下一个更大元素 I解法一:单调栈(自己写的,复杂)解法二:单调栈(视频教程版)
总结
739. 每日温度
教程视频:https://www.bilibili.com/video/BV1my4y1Z7jj 遍历时将已经遍历的元素,存入栈中,期间保持栈顶到栈底为递增的。 class Solution { public int[] dailyTemperatures(int[] temperatures) { int[] answer = new int[temperatures.length]; Deque stack=new LinkedList(); stack.push(0); for(int i=1;i stack.push(i); }else{ while(!stack.isEmpty() && temperatures[i]>temperatures[stack.peek()]){ answer[stack.peek()]=i-stack.peek(); stack.pop(); } stack.push(i); } } return answer; } } 解法二:单调栈(自己写的,反向遍历) class Solution { public int[] dailyTemperatures(int[] temperatures) { int[] answer = new int[temperatures.length]; // Stack stack = new Stack(); Deque stack=new LinkedList(); for(int i=temperatures.length-1;i>=0;i--){ while(!stack.isEmpty() && temperatures[i]>=temperatures[stack.peek()]){ stack.pop(); } if(stack.isEmpty()){ answer[i]=0; }else{ answer[i] = stack.peek()-i; } stack.push(i); } return answer; } } 496.下一个更大元素 I教程视频:https://www.bilibili.com/video/BV1jA411m7dX 1、单调栈存放的是数组下标,这样可以更方便的查询元素并获取距离。 |
CopyRight 2018-2019 实验室设备网 版权所有 |