随笔分类 -  LeetCode_dfs

摘要:题目描述: 给定 n 门课程(0,n-1) 和它们之间的先修关系,比如{(0,1),(1,2),(2,3),(2,0)} ,(0,1)表示 课程 1 是课程 0 的先修课程,即要修课程 0 必须 先修 课程 1,。根据给出的课程和其之间的先修关系,判断能否完成所有课程的学习。 将给定的课程和课程之间 阅读全文
posted @ 2021-03-31 12:30 谁在写西加加 阅读(133) 评论(0) 推荐(0)
摘要:题目描述: 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 方法一: 回溯 + 剪枝 将 生成 n 对 有效括号的过程就是在一棵剪枝了的二叉树上遍历的过程。下图是 n = 3 的情况。 从上面的图片中我们可以很明显的看到,最后五条画黑线的叶节点就是最终 阅读全文
posted @ 2020-12-02 17:41 谁在写西加加 阅读(120) 评论(0) 推荐(0)
摘要:CategoryDifficultyLikesDislikes algorithms Medium (62.81%) 407 - TagsCompanies 给定一个整数 n,生成所有由 1 ... n 为节点所组成的 二叉搜索树 。 示例:输入:3输出: [ [1,null,3,2], [3,2, 阅读全文
posted @ 2020-06-09 01:56 谁在写西加加 阅读(141) 评论(0) 推荐(0)
摘要:1.DFS 这道题让将矩阵中被'X'包围的不接触边框的'O组成的连通分量用'X'替换,显然可以使用DFS的方法解答,直接的想法是,遍历二维矩阵,遇到‘O’使用DFS判断由'O'组成的连通分量有没有接触到边框, 没有接触到DFS返回true,并将'O组成的连通分量用'X'替换;否则返回false,不替 阅读全文
posted @ 2020-04-20 23:39 谁在写西加加 阅读(175) 评论(0) 推荐(0)
摘要:本题可以套用和 [LeetCode] 200. Number of Islands 岛屿的数量 与 [LeetCode 695] Max Area of Island 岛的最大面积一样的dfs模版,不同的是DFS的遍历路径不同,本题 采用的是类似十字遍历方式,具体见如下代码。 1 /* 2 * @D 阅读全文
posted @ 2020-04-12 23:35 谁在写西加加 阅读(193) 评论(0) 推荐(0)
摘要:这道求岛屿数量的题的本质是求矩阵中连续区域的个数,很容易想到需要用深度优先搜索 DFS 来解,我们需要建立一个 visited 数组用来记录某个位置是否被访问过。由于本题没有要求不能破坏原矩阵, 所以可以使用DFS的方法将矩阵中每一块连续的1都置为0,以此标记以访问过,则可以到空间复用的目的。特别重 阅读全文
posted @ 2020-04-12 22:10 谁在写西加加 阅读(214) 评论(0) 推荐(0)
摘要:1. DFS 从一个节点出发,使用 DFS 对一个图进行遍历时,能够遍历到的节点都是从初始节点可达的,DFS 常用来求解这种 可达性 问题。 在程序实现 DFS 时需要考虑以下问题: 栈:用栈来保存当前节点信息,当遍历新节点返回时能够继续遍历当前节点。可以使用递归栈(递归函数调用)。 标记:和 BF 阅读全文
posted @ 2020-04-11 18:41 谁在写西加加 阅读(187) 评论(0) 推荐(0)