
图遍历
在河之洲木水
这个作者很懒,什么都没留下…
展开
-
LeetCode刷题系列 -- 785. 判断二分图
二分图 定义:如果能将一个图的节点集合分割成两个独立的子集 A 和 B ,并使图中的每一条边的两个节点一个来自 A 集合,一个来自 B 集合,就将这个图称为 二分图。解释:不能将节点分割成两个独立的子集,以使每条边都连通一个子集中的一个节点与另一个子集中的一个节点。这个图可能不是连通图,也就是说两个节点 u 和 v 之间可能不存在一条连通彼此的路径。输入:graph = [[1,2,3],[0,2],[0,1,3],[0,2]]输入:graph = [[1,3],[0,2],[1,3],[0,2]]原创 2022-11-29 23:54:32 · 151 阅读 · 0 评论 -
LeetCode 刷题系列 -- 200. 岛屿数量
链接:https://leetcode.cn/problems/number-of-islands。给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。同时我们相邻的其他 1 都置为0,即该岛屿下次不再记录了。说明我们遇到了岛屿,记录岛屿的 count 自增 1;我们可以遍历这个二维数组,若是某个格子的值为 1,grid[i][j] 的值为 '0' 或 '1'输入:grid = [原创 2022-09-04 18:05:00 · 195 阅读 · 0 评论 -
LeetCode刷题系列 -- 133. 克隆图
利用递归的方法,每次给当前的节点 A 深拷贝一个节点,再递归的给节点 A 的邻居节点深拷贝。图中的每个节点都包含它的值 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。图中有 4 个节点。原创 2022-11-27 17:06:55 · 879 阅读 · 0 评论 -
LeetCode 刷题系列 -- 797. 所有可能的路径
graph[i] 是一个从节点 i 可以访问的所有节点的列表(即从节点 i 到节点 graph[i][j]存在一条有向边)。输出:[[0,4],[0,3,4],[0,1,3,4],[0,1,2,3,4],[0,1,4]]输入:graph = [[4,3,1],[3,2,4],[3],[4],[]]解释:有两条路径 0 -> 1 -> 3 和 0 -> 2 -> 3。输入:graph = [[1,2],[3],[3],[]]输出:[[0,1,3],[0,2,3]]来源:力扣(LeetCode)原创 2022-11-26 23:06:03 · 329 阅读 · 0 评论 -
LeetCode刷题系列 -- 752. 打开转盘锁
每个拨轮都有10个数字: '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'。输入: deadends = ["8887","8889","8878","8898","8788","8988","7888","9888"], target = "8888"可能的移动序列为 "0000" -> "1000" -> "1100" -> "1200" -> "1201" -> "1202" -> "0202"。因为当拨动到 "0102" 时这个锁就会被锁定。原创 2022-09-18 23:17:56 · 198 阅读 · 0 评论 -
LeetCode刷题系列 -- 1905. 统计子岛屿
输入:grid1 = [[1,0,1,0,1],[1,1,1,1,1],[0,0,0,0,0],[1,1,1,1,1],[1,0,1,0,1]], grid2 = [[0,0,0,0,0],[1,1,1,1,1],[0,1,0,1,0],[0,1,0,1,0],[1,0,0,0,1]]如果 grid2 的一个岛屿,被 grid1 的一个岛屿 完全 包含,也就是说 grid2 中该岛屿的每一个格子都被 grid1 中同一个岛屿完全包含,那么我们称 grid2 中的这个岛屿为 子岛屿。原创 2022-09-11 00:30:04 · 190 阅读 · 0 评论 -
LeetCode刷题系列 -- 695. 岛屿的最大面积
输入:grid = [[0,0,1,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,1,1,0,1,0,0,0,0,0,0,0,0],[0,1,0,0,1,1,0,0,1,0,1,0,0],[0,1,0,0,1,1,0,0,1,1,1,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,0,0,0,0,0,0,1,1,0,0,0,0]]来源:力扣(LeetCode)原创 2022-09-08 23:53:56 · 194 阅读 · 0 评论 -
LeetCode 刷题系列 -- 1254. 统计封闭岛屿的数目
输入:grid = [[1,1,1,1,1,1,1,0],[1,0,0,0,0,1,1,0],[1,0,1,0,1,1,1,0],[1,0,0,0,0,1,0,1],[1,1,1,1,1,1,1,0]]二维矩阵 grid 由 0 (土地)和 1 (水)组成。输入:grid = [[0,0,1,0,0],[0,1,0,1,0],[0,1,1,1,0]]思路:我们想办法把在边界的那些岛屿给填上海,再统计剩下岛屿的个数,即为题目所求的封闭岛屿个数。输入:grid = [[1,1,1,1,1,1,1],原创 2022-09-08 00:15:26 · 990 阅读 · 0 评论 -
数据结构与算法系列 -- 图遍历
1.广度优先搜索(BFS)广度优先搜索(Breadth-First-Search),简称为 BFS。直观地讲,它其实就 是一种“地毯式”层层推进的搜索策略,即先查找离起始顶点最近的,然后是次近的,依次 往外搜索。过程图如下: BFS代码如下:class Graph { public int v; //顶点个数 public LinkedList<Integer>[...原创 2020-05-30 15:56:05 · 159 阅读 · 0 评论