
栈
圆滚滚的柴柴
这个作者很懒,什么都没留下…
展开
-
中兴算法挑战赛-比特派:做任务
题目贴在最后。思路:借助栈。建5个栈,分别保存1~5的任务序号,由于每次取编号最大的,所以只需弹出栈顶元素即可。代码:// 本题为考试多行输入输出规范示例,无需提交,不计分。import java.util.*;public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.next原创 2021-04-25 19:16:49 · 187 阅读 · 0 评论 -
leetcode Java:71. 简化路径
题目: 71. 简化路径思路:栈首先,用split()函数把/去掉;然后,借助栈:如果是路径名就压栈;如果是.,不做处理;如果是..,就从栈里pop一个目录。代码:class Solution { public String simplifyPath(String path) { Stack<String> stack = new Stack<>(); String[] strs = path.split("/");原创 2021-04-07 15:34:16 · 218 阅读 · 0 评论 -
牛客 剑指offer:设计getMin功能的栈
题目:设计getMin功能的栈思路:两个栈,一个是正常功能,一个存当前最小值。代码:import java.util.*;public class Solution { /** * return a array which include all ans for op3 * @param op int整型二维数组 operator * @return int整型一维数组 */ public int[] getMinStack (int[]原创 2021-03-30 15:44:37 · 105 阅读 · 0 评论 -
leetcode Java:173. 二叉搜索树迭代器
题目:173. 二叉搜索树迭代器思路:栈。题目要求从小到大返回节点的值,那就是中序遍历,我们可以用一个数组,存储中序遍历的结果,这样可以满足需求,空间复杂度是O(n),n是节点数。可以借助栈实现树的中序遍历。按照这个思路,栈顶元素总是当前的最小值,每弹出一个元素,若不是叶节点,就要再次进行压栈。代码:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNo原创 2021-03-18 15:18:47 · 159 阅读 · 0 评论 -
牛客 剑指offer:括号匹配
题目:括号匹配思路:栈代码:import java.util.*;public class Solution { /** * * @param s string字符串 * @return bool布尔型 */ public boolean isValid (String s) { // write code here Stack<Character> stack = new Stack<原创 2021-03-16 15:23:57 · 279 阅读 · 0 评论 -
牛客 剑指offer:两个栈实现队列
题目:两个栈实现队列思路:入队列统一压到1栈;出队列时,借助2栈:1栈元素依次出栈压入2栈,此时,2栈栈顶元素是队列需要出队的元素,将其弹出,最后再把2栈元素依次出栈压回1栈,返回弹出的元素。代码:import java.util.Stack;public class Solution { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer> stack2 = new Sta原创 2021-03-10 10:23:23 · 103 阅读 · 0 评论 -
leetcode Java:155. 最小栈
题目: 155. 最小栈思路:主要考察如何返回栈里的最小值,我们另外新建一个栈,来保持原栈中的最小值。两个栈同步更新,原栈压入元素时,最小值栈也压入当前的最小值。代码:class MinStack { Stack<Integer> stack; Stack<Integer> minstack; /** initialize your data structure here. */ public MinStack() { sta原创 2021-03-06 12:21:27 · 90 阅读 · 0 评论 -
leetcode Java二刷:20. 有效的括号
题目:20. 有效的括号思路:栈。左括号压栈,右括号弹出栈顶元素匹配。代码:class Solution { public boolean isValid(String s) { Stack<Character> stack = new Stack<>(); Map<Character, Character> hashmap = new HashMap<>(); hashmap.put(')',原创 2021-01-11 19:24:31 · 77 阅读 · 0 评论