摘要: 题目描述 思路 思路: 碰到数字:压入数字栈,注意多位数的情况 碰到字母:直接拼接到res 遇到[:将num和res分别压入栈 遇到]:开始处理栈顶元素 方法一: class Solution { public String decodeString(String s) { int num = 0; 阅读全文
posted @ 2023-12-24 17:09 Ac_c0mpany丶 阅读(20) 评论(0) 推荐(0)
摘要: 栈主要考察单调栈,队列主要考察优先队列(堆)。 栈和队列(ArrayDeque) 数据结构 ArrayDeque类是双端队列Deque接口的实现类。 Deque的含义是"double ended queue",即双端队列,它既可以当作栈使用,性能优于Stack,也可以当作队列使用,性能优于Linke 阅读全文
posted @ 2023-12-24 15:55 Ac_c0mpany丶 阅读(49) 评论(0) 推荐(0)
摘要: 题目描述 思路:枚举+优化(单调栈) 先固定矩阵的高。 然后向左向右找到第一个比当前元素值小的元素,确定好左右边界。 对于元素2来说: 向左找到第一个比当前元素值小的元素:1的右边界 向右找到第一个比当前元素值小的元素:3的右边界 枚举每个元素的上边界,确定往左数最远到达哪个边界(即寻找左边第一个比 阅读全文
posted @ 2023-12-24 15:48 Ac_c0mpany丶 阅读(22) 评论(0) 推荐(0)
摘要: 题目描述 思路一:单调栈 柱子的高度递减的时候是装不了水的,当碰到第一个比之前高的柱子才可以装水。 此时计算栈顶索引能装的水: 宽:i - left - 1(这个left为栈顶元素pop之后的peek值) 高:min(height[left], height[i]) - height[top] 该题 阅读全文
posted @ 2023-12-24 15:46 Ac_c0mpany丶 阅读(17) 评论(0) 推荐(0)
摘要: 题目描述 思路:单调递减栈 使用单调栈的模板即可。 根据题意可知,该题使用的是单调递减栈。 问题抽象为:找出数组中右边第一个比我大的元素。 方法一: class Solution { public int[] dailyTemperatures(int[] temperatures) { // 用于 阅读全文
posted @ 2023-12-24 15:45 Ac_c0mpany丶 阅读(17) 评论(0) 推荐(0)