12 2023 档案
摘要:目录51.题目python题解:回溯javascript题解:回溯优化回溯-空间换时间52题目题解:回溯优化 51.题目 按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。 给
阅读全文
摘要:模板 def backtrack(nums: List[int], track: List[int], res: List[List[int]]): for 选择 in 选择列表: track.append(nums[i])#做选择 backtrack(nums, track, res)#递归 tr
阅读全文
摘要:目录46.题目题解:回溯pythonJavaScript优化-使用备忘录47.题目题解:回溯 46.题目 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入:nums = [1,2,3] 输出:[[1,2,3],[1,3,2],[2,
阅读全文
摘要:目录题目python题解:回溯+剪枝javascript题解:回溯 题目 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例 1: 输入:n = 3 输出:["((()))","(()())","(())()","()(())","()()()"]
阅读全文
摘要:目录题目题解:回溯 题目 编写一个程序,通过填充空格来解决数独问题。 数独的解法需 遵循如下规则: 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图) 数独部分空格内已填入了数字,空白格用 '.
阅读全文
摘要:目录题目题解 题目 题解 class Solution: def convert(self, s: str, numRows: int) -> str: if numRows < 2: # 如果行数小于2,不需要转换,直接返回原始字符串 return s res = ["" for _ in ran
阅读全文
摘要:目录题目题解:BFS210.课程表Ⅱ 题目 你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] = [ai, bi] ,表示如
阅读全文
摘要:目录题目python题解:BFSjavascript题解:层序遍历 题目 给定一个 完美二叉树 (117的Ⅱ题不是完美二叉树,是二叉树,其余一样),其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下: struct Node { int val; Node *left; Node *
阅读全文
摘要:目录题目python题解:BFSjavascript题解:层序遍历 题目 给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。与实际答案相差 10-5 以内的答案可以被接受。 python 题解:BFS class Solution: def averageOfLevels
阅读全文
摘要:目录题目题解:BFS正解:优化 题目 给你一棵二叉树的根节点 root ,返回树的 最大宽度 。 树的 最大宽度 是所有层中最大的 宽度 。 每一层的 宽度 被定义为该层最左和最右的非空节点(即,两个端点)之间的长度。将这个二叉树视作与满二叉树结构相同,两端点间会出现一些延伸到这一层的 null 节
阅读全文
摘要:目录题目题解:BFS 题目 给定一个二叉树的根 root 和两个整数 val 和 depth ,在给定的深度 depth 处添加一个值为 val 的节点行。 注意,根节点 root 位于深度 1 。 加法规则如下: 给定整数 depth,对于深度为 depth - 1 的每个非空树节点 cur ,创
阅读全文
摘要:目录题目python题解:BFSjavascript题解:层序遍历 题目 给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值。 python 题解:BFS BFS遍历每一层,在每一层每一个元素出队的时候更新最大值,保存每一层的最大值,最后返回即可。 class Solution: d
阅读全文
摘要:目录题目题解:BFS题解:BFS优化 题目 给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 题解:BFS BFS,队列的最后一层的第一个结点 class Solution: def findBottomLeftValue(self, r
阅读全文
摘要:目录题目python题解:BFSjavascript题解:层序遍历 题目 给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。 树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。 python 题解:BFS class Solution: def level
阅读全文
摘要:目录题目python题解:BFSjavascript题解:层序遍历 题目 给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 python 题解:BFS 用BFS,每一层最后一个弹出队列的元素加到结果列表里面 class Solution:
阅读全文
摘要:目录题目python题解:BFSjavascript题解:层序遍历 题目 给你二叉树的根节点 root ,返回其节点值 自底向上的层序遍历 。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) python 题解:BFS 用BFS把每层的结点存在一个单独的列表里,最后翻转整个结果列表 cl
阅读全文
摘要:目录题目题解:BFS 题目 给你二叉树的根节点 root ,返回其节点值的 锯齿形层序遍历 。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 题解:BFS 用BFS把每一层的结点存在一个列表里面,然后判断一下如果是偶数层就翻转列表,最后都加入结果列表返回即可 class
阅读全文
摘要:目录题目题解:BFS题解:双向BFS 题目 你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' 。每个拨轮可以自由旋转:例如把 '9' 变为 '0','0' 变为 '9' 。每次旋转都只能旋转一
阅读全文
摘要:var rightSideView = function(root) { //返回层序遍历的每一层的最后一个节点 let res=[]//存储结果 let queue=[root] if (root null) return [] while(queue.length>0){ const n = q
阅读全文
摘要:目录题目python题解:递归 判断条件是和超出10否javascript题解:迭代 判断条件是(l1 || l2 || count>0)题解:递归 判断条件是(l1 || l2 || count>0) 题目 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且
阅读全文
摘要:目录题目题解:回溯 题目 给你一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。 每条从根节点到叶节点的路径都代表一个数字: 例如,从根节点到叶节点的路径 1 -> 2 -> 3 表示数字 123 。 计算从根节点到叶节点生成的 所有数字之和 。 题解:回溯 clas
阅读全文
摘要:目录题目题解 题目 给你一棵二叉树的根节点 root ,请你构造一个下标从 0 开始、大小为 m x n 的字符串矩阵 res ,用以表示树的 格式化布局 。构造此格式化布局矩阵需要遵循以下规则: 树的 高度 为 height ,矩阵的行数 m 应该等于 height + 1 。 矩阵的列数 n 应
阅读全文
摘要:目录题目题解:前序遍历 题目 给你两棵二叉树: root1 和 root2 。 想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两个节点重 叠,那么将这两个节点的值相加作为合并后节点的新值;否则,不为 nu
阅读全文
摘要:目录题目题解:前序遍历 题目 给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。 题解:前序遍历 class Solution: def binaryTreePaths(self, root: Optional[TreeNode]) -> List[str]: r
阅读全文
摘要:目录题目python题解:DFSjavascript题解:递归 题目 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 python 题解:DFS class Solution: def invertTree(self, root: Optional[TreeNode]) ->
阅读全文
摘要:目录题目题解:回溯 题目 给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 题解:回溯 class Solution: def pathSum(self, root: Optional[TreeNode], targe
阅读全文
摘要:目录题目法一、DFS法二、回溯 题目 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如 果存在,返回 true ;否则,返回 false 。 法一、DFS 判断当前节
阅读全文
摘要:目录题目python完美踩坑法一、DFS法二、BFSjavascript题解:层序遍历 题目 给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:2 示例 2: 输入:root
阅读全文
摘要:目录题目自顶向下自顶向下+后序遍历 正解自底向上(优) 题目 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 自顶向下 首先,对当前节点进行处理,计算左孩子的高度,右孩子的高度,两者高度差若大于1返回
阅读全文
摘要:目录题目法一、中序遍历法二、中序遍历+排序 题目 给你二叉搜索树的根节点 root ,该树中的 恰好 两个节点的值被错误地交换。请在不改变其结构的情况下,恢复这棵树 。 法一、中序遍历 class Solution: def recoverTree(self, root: TreeNode) ->
阅读全文
摘要:目录题目题解 题目 给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 和101题对称二叉树一样,跳转链接:https://www.cnblogs.com/lushuang55/p/17809326.html
阅读全文