
队列
傅里叶不想变换_
这个作者很懒,什么都没留下…
展开
-
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 评论 -
剑指 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 评论 -
剑指 Offer 32 - III. 从上到下打印二叉树 III
思路: BFS,定义一个List<List<Integer>> ans,定义临时的LinkedList<Integer> tmp,遍历一层就把tmp加入到 ans中。注意: 奇偶层时,tmp加入顺序不同,可以用layer表示层数,也可以用布尔变量 flag记录,或者可以用 res.size()记录。如果res.size() % 2 == 1则表示奇数层。class Solution { public List<List<Integer&g.原创 2021-01-15 19:19:50 · 115 阅读 · 0 评论 -
Leetcode 17. 电话号码的字母组合
class Solution { public static List<String> letterCombinations(String digits) { // 存储答案 List<String> combinations = new ArrayList<>(); // 特殊情况 if (digits.length() == 0) { return combination.原创 2020-12-19 17:41:59 · 198 阅读 · 2 评论 -
Leetcode 17. 电话号码的字母组合
思路1:实质上就是一颗树class Solution { public List<String> letterCombinations(String digits) { List<String> combinations = new ArrayList<String>(); if (digits.length() == 0) { return combinations; } .原创 2020-12-27 15:50:05 · 284 阅读 · 2 评论