广度/深度遍历
文章平均质量分 61
CIA_agent
这个作者很懒,什么都没留下…
展开
-
leetcode 124. 二叉树中的最大路径和
二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。思路,可以通过一个函数,求以 root 为 根节点到 子节点的最大 pathSum, 这样递归遍历就能求出所有的 pathSum。解释:最优路径是 15 -> 20 -> 7 ,路径和为 15 + 20 + 7 = 42。解释:最优路径是 2 -> 1 -> 3 ,路径和为 2 + 1 + 3 = 6。输入:root = [-10,9,20,null,null,15,7]输入:root = [1,2,3]原创 2023-10-30 19:27:54 · 288 阅读 · 0 评论 -
leetcode 310 最小高度树
思路1, 先根据图的叶子节点(对应的边为1),进行广度遍历,遍历到最后一层,则显然以最后一层为根节点的树是最小高度树。输入:n = 6, edges = [[3,0],[3,1],[3,2],[3,4],[5,4]]解释:如图所示,当根是标签为 1 的节点时,树的高度是 1 ,这是唯一的最小高度树。输入:n = 4, edges = [[1,0],[1,2],[1,3]]x 到 y 之间的路径即为图中的最长路径,找到路径的中间节点即为根节点。树的 高度 是指根节点和叶子节点之间最长向下路径上边的数量。原创 2023-10-21 17:06:33 · 221 阅读 · 0 评论 -
leetcode 37. 解数独
数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。数独部分空格内已填入了数字,空白格用 ‘.’ 表示。board[i][j] 是一位数字或者 ‘.’编写一个程序,通过填充空格来解决数独问题。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。题目数据 保证 输入数独仅有一个解。原创 2023-10-20 10:08:55 · 220 阅读 · 0 评论 -
leetcode 886. 可能的二分法
否则返回 false。思路:用「染色法」来解决,第一组颜色标记为 1, 则相邻组的颜色标记为 2,遍历时,如果发现邻节点已经被染色,且和当前节点的颜色相同,说明是不能划分为两组的。输入:n = 5, dislikes = [[1,2],[2,3],[3,4],[4,5],[1,5]]输入:n = 4, dislikes = [[1,2],[1,3],[2,4]]输入:n = 3, dislikes = [[1,2],[1,3],[2,3]]解释:group1 [1,4], group2 [2,3]原创 2023-10-06 23:23:35 · 204 阅读 · 0 评论 -
leetcode 133. 克隆图
由于图是无向的,如果节点 p 是节点 q 的邻居,那么节点 q 也必须是节点 p 的邻居。图中的每个节点都包含它的值 val(int) 和其邻居的列表(list[Node])。每个列表都描述了图中节点的邻居集。输入:adjList = [[2,4],[1,3],[2,4],[1,3]]输出:[[2,4],[1,3],[2,4],[1,3]]节点 1 的值是 1,它有两个邻居:节点 2 和 4。节点 2 的值是 2,它有两个邻居:节点 1 和 3。节点 4 的值是 4,它有两个邻居:节点 1 和 3。原创 2023-09-20 09:06:35 · 226 阅读 · 0 评论 -
leetcode 827. 最大人工岛
(用一个数组保存矩阵的每个位置到属于某个岛屿的映射,一个map 保存岛屿的面积)。然后再遍历矩阵,碰到0,就判断其上下左右,如果不是一个岛屿,就把他们的面积相加。解释: 将一格0变成1,最终连通两个小岛得到面积为 3 的岛屿。输入: grid = [[1, 0], [0, 1]]输入: grid = [[1, 1], [1, 0]]输入: grid = [[1, 1], [1, 1]]解释: 没有0可以让我们变成1,面积依然为 4。解释: 将一格0变成1,岛屿的面积扩大为 4。思路:先遍历一遍矩阵,原创 2023-08-03 08:24:31 · 234 阅读 · 0 评论 -
leetcode 399. 除法求值
输入:equations = [[“a”,“b”],[“b”,“c”],[“bc”,“cd”]], values = [1.5,2.5,5.0], queries = [[“a”,“c”],[“c”,“b”],[“bc”,“cd”],[“cd”,“bc”]]输入:equations = [[“a”,“b”],[“b”,“c”]], values = [2.0,3.0], queries = [[“a”,“c”],[“b”,“a”],[“a”,“e”],[“a”,“a”],[“x”,“x”]]原创 2023-07-23 20:49:21 · 163 阅读 · 0 评论 -
leetcode 542. 01 矩阵
可以采用广度遍历的方式来做,先把所有为 0 的元素进队列,然后依次计算出其临近的元素的距离,依次直到把矩阵中所有的元素的距离都计算完。输入:mat = [[0,0,0],[0,1,0],[0,0,0]]输入:mat = [[0,0,0],[0,1,0],[1,1,1]]输出:[[0,0,0],[0,1,0],[0,0,0]]输出:[[0,0,0],[0,1,0],[1,2,1]]两个相邻元素间的距离为 1。mat 中至少有一个 0。原创 2023-07-15 09:56:02 · 1203 阅读 · 0 评论 -
BM61 矩阵最长递增路径
描述给定一个 n 行 m 列矩阵 matrix ,矩阵内所有数均为非负整数。 你需要在矩阵中找到一条最长路径,使这条路径上的元素是递增的。并输出这条最长路径的长度。这个路径必须满足以下条件:对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外。你不能走重复的单元格。即每个格子最多只能走一次。数据范围:1≤n,m≤1000,1≤matrix[i][j]≤1000进阶:空间复杂度 O(nm) ,时间复杂度 O(nm)例如:当输入为[[1,2,3],[4,原创 2022-04-06 22:12:58 · 478 阅读 · 0 评论