
栈
傅里叶不想变换_
这个作者很懒,什么都没留下…
展开
-
225. (一个or两个)队列实现栈
这里写目录标题两个队列一个队列两个队列思路:每次把元素push进q2,然后把q1的元素push进q2,再交换q1和q2。比如 1 2, 那么第一次q2是1, q1为空,然后交换 q1是1,q2为空第二次 q2push了2,现在是2,q1这时候是1,然后把q1push到q2,q2就变成了2 1,此时q1为空,然后再交换q1,q2,那么q1就是 2 1,q2是空class MyStack { Queue<Integer> q1; Queue<Integer>.原创 2021-08-24 21:17:48 · 205 阅读 · 0 评论 -
20. 有效的括号
class Solution { public boolean isValid(String s) { int n = s.length(); if(n % 2 == 1) return false; Map<Character, Character> map = new HashMap<>(){{ put(')','('); put(']','[');原创 2021-07-05 23:24:51 · 83 阅读 · 0 评论 -
剑指 Offer 09. 用两个栈实现队列
思路:栈是先进后出,队列是先进先出,故用两个栈来模拟队列。如图,要添加元素,直接在A中添加即可,但是要删除栈底元素(即模拟队列),直接使用栈A无法删除,故使用辅助栈B将A中的元素逆序存放,然后弹出B的栈顶即可。//A 用于加入队尾操作,栈 B 用于将元素倒序class CQueue { LinkedList<Integer> A, B; public CQueue() { A = new LinkedList<Integer>(); .原创 2021-01-22 20:10:40 · 150 阅读 · 0 评论 -
Leetcode 20. 有效的括号
思路:使用栈,将左括号入栈,如果来了左括号,继续入栈,如果来了右括号,判断栈顶元素与该右括号是否匹配,如果不匹配直接返回 false,如果匹配则弹出栈顶元素。注意stack.Peek 与 stack.pop 的异同点 :相同点:大家都返回栈顶的值不同点:peek 不改变栈的值(不删除栈顶的值),pop会把栈顶的值删除class Solution { public boolean isValid(String s) { int n = s.length(); .原创 2020-12-27 20:01:01 · 85 阅读 · 0 评论