
递归
文章平均质量分 61
晋级菜鸟
这个作者很懒,什么都没留下…
展开
-
236. 二叉树的最近公共祖先
236. 二叉树的最近公共祖先 难度中等1085收藏分享切换为英文接收动态反馈 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 示例 1: 输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1 输出:3 解释:节点 5 和节点 1 的最.原创 2021-04-19 19:08:06 · 124 阅读 · 0 评论 -
131. 分割回文串
131. 分割回文串 难度中等681收藏分享切换为英文接收动态反馈 给你一个字符串s,请你将s分割成一些子串,使每个子串都是回文串。返回s所有可能的分割方案。 回文串是正着读和反着读都一样的字符串。 示例 1: 输入:s = "aab" 输出:[["a","a","b"],["aa","b"]] 示例 2: 输入:s = "a" 输出:[["a"]] 提示: 1 <= s.length <= 16 s仅由小写英文字母组成 方法一:回溯 +...原创 2021-04-08 19:00:04 · 270 阅读 · 0 评论 -
面试题 08.12. 八皇后
面试题 08.12. 八皇后 难度困难78收藏分享切换为英文接收动态反馈 设计一种算法,打印 N 皇后在 N × N 棋盘上的各种摆法,其中每个皇后都不同行、不同列,也不在对角线上。这里的“对角线”指的是所有的对角线,不只是平分整个棋盘的那两条对角线。 注意:本题相对原题做了扩展 示例: 输入:4 输出:[[".Q..","...Q","Q...","..Q."],["..Q.","Q...","...Q",".Q.."]] 解释: 4 皇后问题存在如下两个不同的解法。 [ [".Q...原创 2021-04-08 17:24:56 · 196 阅读 · 0 评论 -
114. 二叉树展开为链表
114. 二叉树展开为链表 难度中等768收藏分享切换为英文接收动态反馈 给你二叉树的根结点root,请你将它展开为一个单链表: 展开后的单链表应该同样使用TreeNode,其中right子指针指向链表中下一个结点,而左子指针始终为null。 展开后的单链表应该与二叉树先序遍历顺序相同。 示例 1: 输入:root = [1,2,5,3,4,null,6] 输出:[1,null,2,null,3,null,4,null,5,null,6] 示例 2: 输入:...原创 2021-04-01 21:18:07 · 108 阅读 · 0 评论 -
39. 组合总和
39. 组合总和 难度中等1259收藏分享切换为英文接收动态反馈 给定一个无重复元素的数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。 candidates中的数字可以无限制重复被选取。 说明: 所有数字(包括target)都是正整数。 解集不能包含重复的组合。 示例1: 输入:candidates = [2,3,6,7], target = 7, 所求解集为: [ [7], [2,2,3] ]...原创 2021-04-01 20:59:42 · 183 阅读 · 0 评论 -
94. 二叉树的中序遍历
94. 二叉树的中序遍历 难度中等902收藏分享切换为英文接收动态反馈 给定一个二叉树的根节点root,返回它的中序遍历。 示例 1: 输入:root = [1,null,2,3] 输出:[1,3,2] 示例 2: 输入:root = [] 输出:[] 示例 3: 输入:root = [1] 输出:[1] 示例 4: 输入:root = [1,2] 输出:[2,1] 示例 5: 输入:root = [1,null,2] 输出:[1,2] ...原创 2021-04-01 12:27:32 · 91 阅读 · 0 评论 -
22. 括号生成
22. 括号生成 难度中等1683 数字n代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且有效的括号组合。 示例 1: 输入:n = 3 输出:["((()))","(()())","(())()","()(())","()()()"] 示例 2: 输入:n = 1 输出:["()"] 提示: 1 <= n <= 8 方法一:回溯法 思路和算法 我们可以只在序列仍然保持有效时才添加 '(' or ')',而不是像 方法一 那样每...原创 2021-04-01 10:58:50 · 81 阅读 · 0 评论 -
226. 翻转二叉树
226. 翻转二叉树 难度简单803收藏分享切换为英文接收动态反馈 翻转一棵二叉树。 示例: 输入: 4 / \ 2 7 / \ / \ 1 3 6 9 输出: 4 / \ 7 2 / \ / \ 9 6 3 1 备注: 这个问题是受到Max Howell的原问题启发的 : 谷歌:我们90%的工程师使用您编写的软件(Homebrew),但是您却无法在面试时在白板上写出翻转二叉树这道题,这...原创 2021-03-31 11:34:20 · 71 阅读 · 0 评论