摘要: 休息 阅读全文
posted @ 2023-04-13 11:11 blueCP1999 阅读(7) 评论(0) 推荐(0)
摘要: 216. 组合总和III 题目简述 找出所有相加之和为 n 的 k 个数的组合,且满足下列条件: 只使用数字1到9每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回。 思路 回溯 class Solution: def combinatio 阅读全文
posted @ 2023-04-08 00:04 blueCP1999 阅读(21) 评论(0) 推荐(0)
摘要: 回溯算法模板 def backtracking(): if(终止条件): 存放结果 return: for(选择): 处理节点 backtracking() 回溯,撤销处理结果 77. 组合 题目简述: 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何 阅读全文
posted @ 2023-04-07 21:05 blueCP1999 阅读(22) 评论(0) 推荐(0)
摘要: 669. 修剪二叉树 题目简述 给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树,使得所有节点的值在[low, high]中。修剪树 不应该 改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代子代关系都应当保留)。 可以证明,存在 唯 阅读全文
posted @ 2023-04-07 20:26 blueCP1999 阅读(49) 评论(0) 推荐(0)
摘要: 235. 二叉搜索树的最近公共祖先 题目简述: 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 阅读全文
posted @ 2023-04-07 20:16 blueCP1999 阅读(19) 评论(0) 推荐(0)
摘要: 530. 二叉搜索树的最小绝对差 题目简述: 给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 。 差值是一个正数,其数值等于两值之差的绝对值。 思路: 1. 二叉搜索树的中序遍历是单调的 2. 可以证明,求这单调数组中的最小绝对差,拿出来比较的两个数一定是相邻的 c 阅读全文
posted @ 2023-04-07 19:28 blueCP1999 阅读(23) 评论(0) 推荐(0)
摘要: 654. 最大二叉树 题目简述: 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值。递归地在最大值 左边 的 子数组前缀上 构建左子树。递归地在最大值 右边 的 子数组后缀上 构建右子树。 思路 利用递归 1 阅读全文
posted @ 2023-04-07 12:22 blueCP1999 阅读(47) 评论(0) 推荐(0)
摘要: 休息 阅读全文
posted @ 2023-04-06 21:52 blueCP1999 阅读(7) 评论(0) 推荐(0)
摘要: 513.找树左下角的值 深度优先搜索 class Solution: def findBottomLeftValue(self, root: Optional[TreeNode]) -> int: curVal = curHeight = 0 def dfs(node: Optional[TreeN 阅读全文
posted @ 2023-04-02 21:43 blueCP1999 阅读(20) 评论(0) 推荐(0)
摘要: 110. 平衡二叉树 自顶向下递归 1. 获得计算二叉树高度的函数 2. 对于遍历到的节点,首先计算左右子树的高度,看是否平衡 3. 在分别遍历到左右子树,判断左子树和右子树是否平衡 代码如下: class Solution: def isBalanced(self, root: TreeNode) 阅读全文
posted @ 2023-04-02 21:34 blueCP1999 阅读(9) 评论(0) 推荐(0)