算法题型分类
差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版后一修订版两侧同时换到之后的修订记录 | ||
算法题型分类 [2020/11/01 13:13] – [栈和队列] plough | 算法题型分类 [2020/11/06 00:15] – [搜索] plough | ||
---|---|---|---|
行 66: | 行 66: | ||
|Backtracing||| | |Backtracing||| | ||
|17|数字键盘组合|sb.deleteCharAt(pos)| | |17|数字键盘组合|sb.deleteCharAt(pos)| | ||
- | |93|IP 地址划分|| | + | |93|IP 地址划分|转换为树形问题,剪枝| |
- | |79|在矩阵中寻找字符串|| | + | |79|在矩阵中寻找字符串|终止条件用 word.length() == 1| |
- | |257|输出二叉树中所有从根到叶子的路径|| | + | |257|输出二叉树中所有从根到叶子的路径|add和remove成对出现;if (root == null) return;| |
- | |46|排列|| | + | |46|排列|提前声明一个 visited 数组| |
|47|含有相同元素求排列|| | |47|含有相同元素求排列|| | ||
|77|组合|| | |77|组合|| | ||
行 168: | 行 168: | ||
^ leetcode序号 | ^ leetcode序号 | ||
|递归||| | |递归||| | ||
- | |104|树的高度|| | + | |104|树的高度|Math.max(leftDepth, |
- | |110|平衡树|| | + | |110|平衡树|还是求最大深度,多了一次比较和状态记录| |
- | |543|两节点的最长路径|| | + | |543|两节点的最长路径|等于两子树的最大深度之和| |
- | |226|反转树|| | + | |226|反转树|反转左右子树;交换位置| |
- | |617|归并两棵树|| | + | |617|归并两棵树|略| |
- | |112|判断路径和是否等于一个数|| | + | |112|判断路径和是否等于一个数|略| |
- | |437|统计路径和等于一个数的路径数量|| | + | |437|统计路径和等于一个数的路径数量|pathSumStartsWithRoot(root, |
- | |572|子树|| | + | |572|子树|< |
- | |101|树的对称|| | + | |101|树的对称|isMirror(root.left, |
- | |111|最小路径|| | + | |111|最小路径|当 root 节点左右孩子有一个为空时,返回不为空的孩子节点的深度;当 root 节点左右孩子都不为空时,返回左右孩子较小深度的节点值| |
- | |404|统计左叶子节点的和|| | + | |404|统计左叶子节点的和|略| |
|687|相同节点值的最大路径长度|| | |687|相同节点值的最大路径长度|| | ||
|337|间隔遍历|| | |337|间隔遍历|| | ||
行 208: | 行 208: | ||
|232|用栈实现队列|当 sOut 空的时候,一次性把 sIn 加到 sOut 上| | |232|用栈实现队列|当 sOut 空的时候,一次性把 sIn 加到 sOut 上| | ||
|225|用队列实现栈|两个队列;push 的时候,把元素插入临时队列的前面,然后把主队列一一插过去;交换两个队列的名字| | |225|用队列实现栈|两个队列;push 的时候,把元素插入临时队列的前面,然后把主队列一一插过去;交换两个队列的名字| | ||
- | |155|最小值栈|| | + | |155|最小值栈|多使用一个minStack,同步更新| |
- | |20|用栈实现括号匹配|| | + | |20|用栈实现括号匹配|左括号入栈,右括号出栈| |
- | |739|数组中元素与下一个比它大的元素之间的距离|| | + | |739|数组中元素与下一个比它大的元素之间的距离|一次遍历。用栈记录已经遇到的索引,一旦遇到更大的值,就持续出栈,计算结果| |
- | |503|循环数组中比当前元素大的下一个元素|| | + | |503|循环数组中比当前元素大的下一个元素|int i = 0; i < n * 2; i++。只在 i<n 时入栈| |
==== 哈希表 ==== | ==== 哈希表 ==== | ||
^ leetcode序号 | ^ leetcode序号 | ||
- | |1|数组中两个数的和为给定值|| | + | |1|数组中两个数的和为给定值|< |
- | |217|判断数组是否含有重复元素|| | + | |217|判断数组是否含有重复元素|多种算法,略| |
- | |594|最长和谐序列|| | + | |594|最长和谐序列|构造freqMap,遍历此map| |
- | |128|最长连续序列|| | + | |128|最长连续序列|<num, length> |
==== 字符串 ==== | ==== 字符串 ==== |
算法题型分类.txt · 最后更改: 2020/11/06 02:29 由 plough