算法题型分类
差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
算法题型分类 [2020/11/01 13:50] – [栈和队列] plough | 算法题型分类 [2020/11/06 02:29] (当前版本) – [搜索] 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|组合|| | ||
|39|组合求和|| | |39|组合求和|| | ||
行 78: | 行 78: | ||
|90|含有相同元素求子集|| | |90|含有相同元素求子集|| | ||
|131|分割字符串使得每个部分都是回文数|| | |131|分割字符串使得每个部分都是回文数|| | ||
- | |37|数独|| | + | |37|数独|seeNext| |
|51|N皇后|| | |51|N皇后|| | ||
行 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|间隔遍历|| | ||
行 211: | 行 211: | ||
|20|用栈实现括号匹配|左括号入栈,右括号出栈| | |20|用栈实现括号匹配|左括号入栈,右括号出栈| | ||
|739|数组中元素与下一个比它大的元素之间的距离|一次遍历。用栈记录已经遇到的索引,一旦遇到更大的值,就持续出栈,计算结果| | |739|数组中元素与下一个比它大的元素之间的距离|一次遍历。用栈记录已经遇到的索引,一旦遇到更大的值,就持续出栈,计算结果| | ||
- | |503|循环数组中比当前元素大的下一个元素|int i = 0; i < n * 2; i++| | + | |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