ALL TIME IS NO TIME WHEN IT IS PAST
Growth | Study
第三章:回溯算法最佳实践:括号生成 第三章:回溯算法最佳实践:括号生成
labuladong 回溯算法最佳实践:括号生成 22. 括号生成问题转化为:现在有 2n 个位置,每个位置可以放置字符 ‘(‘ 或者 ‘)’,求生成所有可能的并且有效的括号组合 可用的左括号数量为 left 个,可用的右括号数量为 rg
2020-08-12
第二章:递归反转链表的一部分 第二章:递归反转链表的一部分
labuladong 递归反转链表的一部分 92. 反转链表 II方法1.递归反转链表 (只是说明递归方法的思想,本题优解应参考方法2) 先看例题206. 反转整个链表 对于递归算法,最重要的就是明确递归函数实现的功能(而不是跳进递归中
2020-08-12
第二章:特殊数据结构:单调队列 第二章:特殊数据结构:单调队列
labuladong 特殊数据结构:单调队列 239. 滑动窗口最大值方法1:更新滑动窗口法(暴力遍历,超时) 滑动窗口没有完全进入数组时,把数据加入窗口中 窗口完全进入数组后,保存最大值,同时弹出窗口最左侧的元素(即,右边进,左边出,更新
2020-08-05
第二章:特殊数据结构:单调栈 第二章:特殊数据结构:单调栈
labuladong 特殊数据结构:单调栈 栈(stack)是很简单的一种数据结构,先进后出的逻辑顺序,符合某些问题的特点,比如说函数调用栈。单调栈实际上就是栈,只是利用了一些巧妙的逻辑,使得每次新元素入栈后,栈内的元素都保持有序(单调递
2020-08-05
第二章:如何计算完全二叉树的节点数 第二章:如何计算完全二叉树的节点数
labuladong 如何计算完全二叉树的节点数 222. 完全二叉树的节点个数 完全二叉树都是紧凑靠左排列的 满二叉树每一层都是满的 (除底层的叶子节点外,左右孩子都有),是一种特殊的完全二叉树 遍历二叉树节点时: 若是普通的二叉树,
2020-08-02
第二章:LRU算法详解 第二章:LRU算法详解
labuladong LRU算法详解 146. LRU(Least Recently Used) 缓存机制 利用字典+双向链表 字典里存的是Node的节点类,self.add(Node(key, value)) 传给add函数的是一个No
2020-08-01
第一章:贪心算法之区间调度问题 第一章:贪心算法之区间调度问题
labuladong贪心算法之区间调度问题 435. 无重叠区间 一天有好多活动,你可以选择不重叠的时间尽量多参加活动。 按照活动结束的时间排序后(不管开始得多早,都不如选择早点结束的活动,这样还能继续选其他活动) 假设当前参加的是活动A
2020-07-31
第一章:动态规划之子序列问题解题模板 第一章:动态规划之子序列问题解题模板
labuladong 动态规划之子序列问题解题模板 516. 最长回文子序列 如果暂时想不到状态转移方程,可以先确定base case和最终状态,然后通过它们的相对位置,来猜测状态转移方程,猜测dp[i][j]可能从哪些状态转移而来。以本题
2020-07-31
第一章:经典动态规划:最长公共子序列 第一章:经典动态规划:最长公共子序列
labuladong经典动态规划:最长公共子序列 1143. 最长公共子序列(在dp数组中添加0行和0列可以包含text为空的情况,并且更便于状态转移) dp数组的含义: 对于 text1[0..i-1] 和 text2[0..j-1],
2020-07-31
第一章:经典动态规划:编辑距离 第一章:经典动态规划:编辑距离
labuladong经典动态规划:编辑距离 72. 编辑距离 在word1 和word2 前面分别插入"" 不仅可以包括字符串为空的情况,而且可以更清楚地用空字符串说明状态转移的过程 i 和 j 中,因为最前面加了&
2020-07-30
第一章:动态规划设计:最大子数组 第一章:动态规划设计:最大子数组
labuladong动态规划设计:最大子数组 53. 最大子序和 课堂上,学生排排坐。 老师:“这门课的作业,你们可以选择自己完成,也可以根据座位顺序,和你前面的同学组队(前面的同学可能和前前面的同学组了队,也可能就他一个人)。” 每个
2020-07-29
第一章:动态规划设计:最长递增子序列 第一章:动态规划设计:最长递增子序列
labuladong动态规划设计:最长递增子序列 300. 最长上升子序列 dp数组的含义:以nums[i] 结尾的当前最长上升子序列的长度记录在dp[i]中 状态转移方程:nums[i] 与它之前的元素nums[j]进行比较,若大于num
2020-07-29
8 / 11