栈与队列
栈与队列
StickTo_IT
这个作者很懒,什么都没留下…
展开
-
71. 简化路径
题目描述解题思路❤❤先以斜杠为分隔符,处理字符串两个点返回上一级,即出栈一个点本级菜单,不用处理注意双斜杠,为空,不用处理其他情况入栈即可注意最后输出方式JAVA代码class Solution { public String simplifyPath(String path) { Stack<String> stack = new Stack<>(); String[] str = path.split("/"); /原创 2020-07-22 10:59:52 · 115 阅读 · 0 评论 -
232. 用栈实现队列
题目描述使用栈实现队列的下列操作:push(x) – 将一个元素放入队列的尾部。pop() – 从队列首部移除元素。peek() – 返回队列首部的元素。empty() – 返回队列是否为空。解题思路 ❤用两个栈实现JAVA代码class MyQueue { public Stack<Integer> s1 = new Stack<Integer>(); public Stack<Integer> s2 = new Stack<In原创 2020-07-22 10:46:05 · 73 阅读 · 0 评论 -
·144. 二叉树的前序遍历(前中后总结)
题目描述JAVA代码class Solution { public List<Integer> preorderTraversal(TreeNode root) { LinkedList<TreeNode> stack = new LinkedList<>(); LinkedList<Integer> res = new LinkedList<>(); if (root == null) return res;原创 2020-07-22 10:40:32 · 142 阅读 · 0 评论 -
·103. 二叉树的锯齿形层次遍历
题目描述即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行解题思路JAVA代码原创 2020-07-22 10:09:36 · 100 阅读 · 0 评论 -
·394.字符串解码
题目描述注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。解题思路 ❤❤为什么用栈?括号内嵌套括号,需要从内向外生成与拼接字符串,这与栈的先入后出特性对应。辅助栈解法① 遍历字符串 s 中每个字符 c;② 当 c 为数字时,将数字字符转化为数字 multi,用于后续倍数计算;③ 当 c 为字母时,在原创 2020-07-18 16:31:09 · 116 阅读 · 0 评论 -
·739. 每日温度
题目描述请根据每日气温列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。提示:气温 列表长度的范围是 [1, 30000]。每个气温的值的均为华氏度,都是在 [30, 100] 范围内的整数。解题思路 ❤❤白痴方法:一个一个比较后原创 2020-07-17 21:37:18 · 168 阅读 · 0 评论 -
94. 二叉树的中序遍历
解题思路 ❤❤① 由于在“栈”标签下,没想递归方法… (而且List还用错了)JAVA代码(递归方法)/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } //注意这个命名方法 * } */class Solution.原创 2020-07-11 23:42:43 · 139 阅读 · 1 评论 -
155. 最小栈
设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。解题思路 ❤❤首先,看了答案…知道要额外建一个最小栈,但不知道怎么存数据。答案:若push的值小于等于最小栈栈顶,则存入其次…java要把变量写在方法外,不能只在初始化方法里写其次…Integer的==和equals不一样!!! 比较数值应该使用.equals()!!!!public void testEquals() {int int1 = 12;int int2 = 12;Integer原创 2020-07-11 22:20:32 · 102 阅读 · 0 评论 -
20. 有效的括号
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:①左括号必须用相同类型的右括号闭合。②左括号必须以正确的顺序闭合。③注意空字符串可被认为是有效字符串。解题思路 ❤方法为:栈存左括号① 奇数可以直接判断为错误;② 别忘了边界情况,第一个就为有右括号;③ 以及!!java自带栈功能,别忘了!!④ (以及,不要忘记c怎么求数组长度了…strlen(s)… )JAVA代码(白痴写法)class Solution {原创 2020-07-11 20:46:56 · 141 阅读 · 0 评论 -
·255.用队列实现栈
题解思路 ❤完全忘了java有自带的函数了而且完全忽略了题目要求的是队列功能实现栈。。JAVA代码class MyStack { Queue<Integer> queue; /** Initialize your data structure here. */ public MyStack() { queue= new LinkedList<>(); } /** Push element x onto stac原创 2020-07-11 20:46:24 · 160 阅读 · 0 评论