归档
Growth | Study
08
12
第三章:回溯算法最佳实践:括号生成 第三章:回溯算法最佳实践:括号生成
labuladong 回溯算法最佳实践:括号生成 22. 括号生成问题转化为:现在有 2n 个位置,每个位置可以放置字符 ‘(‘ 或者 ‘)’,求生成所有可能的并且有效的括号组合 可用的左括号数量为 left 个,可用的右括号数量为 rg
2020-08-12
12
第二章:递归反转链表的一部分 第二章:递归反转链表的一部分
labuladong 递归反转链表的一部分 92. 反转链表 II方法1.递归反转链表 (只是说明递归方法的思想,本题优解应参考方法2) 先看例题206. 反转整个链表 对于递归算法,最重要的就是明确递归函数实现的功能(而不是跳进递归中
2020-08-12
05
第二章:特殊数据结构:单调队列 第二章:特殊数据结构:单调队列
labuladong 特殊数据结构:单调队列 239. 滑动窗口最大值方法1:更新滑动窗口法(暴力遍历,超时) 滑动窗口没有完全进入数组时,把数据加入窗口中 窗口完全进入数组后,保存最大值,同时弹出窗口最左侧的元素(即,右边进,左边出,更新
2020-08-05
05
第二章:特殊数据结构:单调栈 第二章:特殊数据结构:单调栈
labuladong 特殊数据结构:单调栈 栈(stack)是很简单的一种数据结构,先进后出的逻辑顺序,符合某些问题的特点,比如说函数调用栈。单调栈实际上就是栈,只是利用了一些巧妙的逻辑,使得每次新元素入栈后,栈内的元素都保持有序(单调递
2020-08-05
02
第二章:如何计算完全二叉树的节点数 第二章:如何计算完全二叉树的节点数
labuladong 如何计算完全二叉树的节点数 222. 完全二叉树的节点个数 完全二叉树都是紧凑靠左排列的 满二叉树每一层都是满的 (除底层的叶子节点外,左右孩子都有),是一种特殊的完全二叉树 遍历二叉树节点时: 若是普通的二叉树,
2020-08-02
01
第二章:LRU算法详解 第二章:LRU算法详解
labuladong LRU算法详解 146. LRU(Least Recently Used) 缓存机制 利用字典+双向链表 字典里存的是Node的节点类,self.add(Node(key, value)) 传给add函数的是一个No
2020-08-01
07
31
第一章:贪心算法之区间调度问题 第一章:贪心算法之区间调度问题
labuladong贪心算法之区间调度问题 435. 无重叠区间 一天有好多活动,你可以选择不重叠的时间尽量多参加活动。 按照活动结束的时间排序后(不管开始得多早,都不如选择早点结束的活动,这样还能继续选其他活动) 假设当前参加的是活动A
2020-07-31
31
31
30
29
第一章:动态规划设计:最大子数组 第一章:动态规划设计:最大子数组
labuladong动态规划设计:最大子数组 53. 最大子序和 课堂上,学生排排坐。 老师:“这门课的作业,你们可以选择自己完成,也可以根据座位顺序,和你前面的同学组队(前面的同学可能和前前面的同学组了队,也可能就他一个人)。” 每个
2020-07-29
29
8 / 11