上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 22 下一页
摘要: 题目链接 542. 01 矩阵 思路 题目让求1到0的距离,其实可以转换成求0到1的距离,将所有的0作为源结点放入队列进行BFS。 BFS本质上就是从源点开始的搜索算法,本题只不过是所有的0都是源点,即多源点,将所有源点放入队列就行。 如果0的旁边没有1,则不会对其周围进行访问;如果0的周围有1,则 阅读全文
posted @ 2023-01-15 15:23 Frodo1124 阅读(19) 评论(0) 推荐(0) 编辑
摘要: BFS 单向BFS 不记录层数 while queue 不空: cur = queue.pop() for 节点 in cur的所有相邻节点: if 该节点有效且未访问过: queue.push(该节点) 作者:负雪明烛 链接:https://leetcode.cn/problems/01-matr 阅读全文
posted @ 2023-01-15 14:09 Frodo1124 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 题目链接 1091. 二进制矩阵中的最短路径 思路 BFS 找最短路模板题 代码 class Solution { public int shortestPathBinaryMatrix(int[][] grid) { if(grid[0][0] == 1 || grid[grid.length - 阅读全文
posted @ 2023-01-15 13:17 Frodo1124 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 题目链接 752. 打开转盘锁 思路 双向BFS,详见宫水三叶大佬题解。 与拓展题目的思路异曲同工。 代码 class Solution { public int openLock(String[] deadends, String target) { String beginNumber = "0 阅读全文
posted @ 2023-01-13 21:48 Frodo1124 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 题目链接 127. 单词接龙 思路 参考宫水三叶大佬的题解 本题最朴素的解法是运用 BFS 求解,从 beginWord 出发,枚举所有替换一个字符的方案,如果方案存在于 wordList 中,则加入队列中,这样队列中就存在所有替换次数为 1 的单词。然后从队列中取出元素,继续这个过程,直到遇到 e 阅读全文
posted @ 2023-01-13 21:45 Frodo1124 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 题目链接 130. 被围绕的区域 思路 BFS 模板的简单变换。 分析题目可以知道,如果一片 O 想要存活,则这一片 O 必然与边界接触。我们可以遍历四个边界,找到所有与边界接触的 O,则剩下的就是需要变为 X 的 O。 代码 class Solution { void bfs(int i, int 阅读全文
posted @ 2023-01-13 15:06 Frodo1124 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 题目链接 133. 克隆图 思路 通过 HashMap 存储原结点与克隆结点的对应关系,这样在 BFS 遍历图的过程中,能够很方便找到该结点对应的克隆结点,并修改克隆结点的邻接表。 代码 class Solution { public Node cloneGraph(Node node) { if( 阅读全文
posted @ 2023-01-12 21:43 Frodo1124 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 题目链接 200. 岛屿数量 思路 BFS在图上的简单应用 代码 class Solution { private void bfs(int i, int j, boolean[][] visit, char[][] grid) { int[] dx = new int[]{1, 0, -1, 0} 阅读全文
posted @ 2023-01-12 15:30 Frodo1124 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 题目链接 297. 二叉树的序列化与反序列化 思路 使用BFS的方法进行序列化及反序列化 序列化 运用BFS遍历树的所有结点,不论是否为null都放进队列中。 如果结点不为 null,则把结点数据转为字符串放入结果字符串中。 如果结点为 null,则把 "X" 放入结果字符串中。 所有结点都以 ", 阅读全文
posted @ 2023-01-12 10:02 Frodo1124 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 题目链接 103. 二叉树的锯齿形层序遍历 思路1 额外加一个栈来使得访问节点的顺序是逆序的 代码1 class Solution { public List<List<Integer>> zigzagLevelOrder(TreeNode root) { if(root == null){ ret 阅读全文
posted @ 2023-01-11 16:04 Frodo1124 阅读(24) 评论(0) 推荐(0) 编辑
上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 22 下一页