![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
栈
傅里叶不想变换_
这个作者很懒,什么都没留下…
展开
-
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 · 103 阅读 · 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 · 53 阅读 · 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 · 113 阅读 · 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 · 58 阅读 · 0 评论