bfs
卖山竹的山兔
这个作者很懒,什么都没留下…
展开
-
lc_bfs_542_updateMatrix
题目:01 矩阵 middle给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。两个相邻元素间的距离为 1 。示例 1:输入:0 0 00 1 00 0 0输出:0 0 00 1 00 0 0示例 2:输入:0 0 00 1 01 1 1输出:0 0 00 1 01 2 1注意: 给定矩阵的元素个数不超过 10000。 给定矩阵中至少有一个元素是 0。 矩阵中的元素只在四个方向上相邻: 上、下、左、右。...原创 2020-07-09 12:43:21 · 316 阅读 · 1 评论 -
lc_bfs_529_updateBoard
题目:扫雷游戏 middle让我们一起来玩扫雷游戏!给定一个代表游戏板的二维字符矩阵。 'M' 代表一个未挖出的地雷,'E' 代表一个未挖出的空方块,'B' 代表没有相邻(上,下,左,右,和所有4个对角线)地雷的已挖出的空白方块,数字('1' 到 '8')表示有多少地雷与这块已挖出的方块相邻,'X' 则表示一个已挖出的地雷。现在给出在所有未挖出的方块中('M'或者'E')的下一个点击位置(行和列索引),根据以下规则,返回相应位置被点击后对应的面板:*如果一个地雷('M')被挖出,游戏就.原创 2020-07-06 18:40:57 · 101 阅读 · 0 评论 -
lc_bfs_515_largestValues
题目:在每个树行中找最大值 middle您需要在二叉树的每一行中找到最大的值。示例:输入: 1 / \ 3 2 / \ \ 5 3 9输出: [1, 3, 9]思路:经典bfs,只需再每层遍历时比较找出每层的最大值package leetCode.BFS;import java.util.ArrayDeque;import java.util.ArrayList;imp...原创 2020-07-06 09:13:14 · 89 阅读 · 0 评论 -
lc_bfs_513_findBottomLeftValue
题目:找树左下角的值 middle给定一个二叉树,在树的最后一行找到最左边的值。示例 1:输入: 2 / \ 1 3输出:1示例 2:输入: 1 / \ 2 3 / / \ 4 5 6 / 7输出:7注意: 您可以假设树(即给定的根节点)不为 NULL。思路:经典的bfs,只需要记录每层的第一个结点值即可package leetC...原创 2020-07-06 08:36:50 · 160 阅读 · 0 评论 -
lc_bfs_429_levelOrder
/*题目:N叉树的层序遍历 middle给定一个 N 叉树,返回其节点值的层序遍历。 (即从左到右,逐层遍历)。例如,给定一个 3叉树 :返回其层序遍历:[ [1], [3,2,4], [5,6]]*//*思路:经典的bfs,不再赘述*/package leetCode.BFS;import java.util.ArrayDeque;import java.util.ArrayList;import java.util.L...原创 2020-07-06 08:23:36 · 93 阅读 · 0 评论 -
lc_bfs_417_pacificAtlantic
/*题目:太平洋大西洋水流问题 middle给定一个 m x n 的非负整数矩阵来表示一片大陆上各个单元格的高度。“太平洋”处于大陆的左边界和上边界,而“大西洋”处于大陆的右边界和下边界。规定水流只能按照上、下、左、右四个方向流动,且只能从高到低或者在同等高度上流动。请找出那些水流既可以流动到“太平洋”,又能流动到“大西洋”的陆地单元的坐标。提示: 输出坐标的顺序不重要 m 和 n 都小于150示例:给定下面的 5x5 矩阵: 太平洋 ~ ~ ~ ~...原创 2020-07-05 22:39:51 · 122 阅读 · 0 评论 -
lc_bfs_210_findOrder
/*题目: 课程表 II middle现在你总共有 n 门课需要选,记为 0 到 n-1。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1]给定课程总量以及它们的先决条件,返回你为了学完所有课程所安排的学习顺序。可能会有多个正确的顺序,你只要返回一种就可以了。如果不可能完成所有课程,返回一个空数组。示例 1:输入: 2, [[1,0]]输出: [0,1]解释: 总共有 2 门课程。要学习课程 1,你需要先完成原创 2020-07-05 15:33:07 · 130 阅读 · 0 评论 -
lc_bfs_207_canFinish
题目:课程表 middle你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1 。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们:[0,1],给定课程总量以及它们的先决条件,请你判断是否可能完成所有课程的学习?示例 1:输入: 2, [[1,0]]输出: true解释: 总共有 2 门课程。学习课程 1 之前,你需要完成课程 0。所以这是可能的。示例 2:输入: 2, [[1,0],[0,原创 2020-07-05 10:45:19 · 111 阅读 · 0 评论 -
lc_bfs_200_numIslands
题目:岛屿数量 middle给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:[['1','1','1','1','0'],['1','1','0','1','0'],['1','1','0','0','0'],['0','0','0','0','0']]输出: 1示例 2:输入:[['1','1.原创 2020-07-04 22:44:17 · 102 阅读 · 0 评论 -
lc_bfs_199_rightSideView
题目:二叉树的右视图 middle给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。package leetCode.BFS;import java.util.ArrayDeque;import java.util.LinkedList;import java.util.List;public class lc_bfs_199_rightSideView {/*题目:二叉树的右视图 middle给定一棵二叉树,想象自己站在它的右侧,按.原创 2020-07-04 11:12:21 · 132 阅读 · 0 评论 -
lc_bfs_133_cloneGraph
/*题目:克隆图 middle给你无向 连通 图中一个节点的引用,请你返回该图的 深拷贝(克隆)。图中的每个节点都包含它的值 val(int) 和其邻居的列表(list[Node])。class Node { public int val; public List<Node> neighbors;}测试用例格式:简单起见,每个节点的值都和它的索引相同。例如,第一个节点值为 1(val = 1),第二个节点值为 2(val = 2),以此类推。该图在测试用例中...原创 2020-07-03 23:45:32 · 94 阅读 · 0 评论 -
lc_bfs_126_findLadders
题目:单词接龙 II hard给定两个单词(beginWord 和 endWord)和一个字典 wordList,找出所有从 beginWord 到 endWord 的最短转换序列。转换需遵循如下规则: 每次转换只能改变一个字母。 转换后得到的单词必须是字典中的单词。说明: 如果不存在这样的转换序列,返回一个空列表。 所有单词具有相同的长度。 所有单词只由小写字母组成。 字典中不存在重复的单词。 你可以假设 beginWord 和 endWo...原创 2020-07-03 16:23:22 · 107 阅读 · 0 评论 -
lc_bfs_127_ladderLength
题目:单词接龙给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度。转换需遵循如下规则: 1.每次转换只能改变一个字母。 2.转换过程中的中间单词必须是字典中的单词。说明: 如果不存在这样的转换序列,返回 0。 所有单词具有相同的长度。 所有单词只由小写字母组成。 字典中不存在重复的单词。 你可以假设 beginWord 和 endWord 是非空的,且二者不相同...原创 2020-07-03 09:17:53 · 157 阅读 · 0 评论 -
lc_bfs_1_levelOrderBottom
题目:二叉树的层次遍历 II simple给定一个二叉树,返回其节点值自底向上的层次遍历。(即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)package leetCode.BFS;import java.util.ArrayDeque;import java.util.Deque;import java.util.LinkedList;import java.util.List;public class lc_bfs_1_levelOrderBottom {/*题目.原创 2020-06-26 18:15:55 · 140 阅读 · 0 评论 -
lc_bfs_103_zigzagLevelOrder
题目: 二叉树的锯齿形层次遍历 middle 给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。package leetCode.BFS;import java.util.*;public class lc_bfs_103_zigzagLevelOrder {/*题目: 二叉树的锯齿形层次遍历 middle 给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与.原创 2020-06-26 13:16:30 · 147 阅读 · 0 评论 -
lc_bfs_310_findMinHeightTrees
题目:最小高度树 middle 对于一个具有树特征的无向图,我们可选择任何一个节点作为根。图因此可以成为树,在所有可能的树中,具有最小高度的树被称为最小高度树。给出这样的一个图,写出一个函数找到所有的最小高度树并返回他们的根节点。格式: 该图包含 n 个节点,标记为 0 到 n - 1。给定数字 n 和一个无向边 edges 列表(每一个边都是一对标签)。你可以假设没有重复的边会出现在 edges 中。由于所有的边都是无向边, [0, 1]和 [1, 0] 是相同的,因此不会同时...原创 2020-06-25 21:12:54 · 132 阅读 · 0 评论 -
lc_bfs_1162_maxDistance
题目:地图分析 middle 你现在手里有一份大小为 N x N 的「地图」(网格) grid,上面的每个「区域」(单元格)都用0和1 标记好了。其中 0 代表海洋,1 代表陆地。 (图见原题)https://leetcode-cn.com/problems/as-far-from-land-as-possible/?utm_source=LCUS&utm_medium=ip_redirect_q_uns&utm_campaign=transfer2china 请你找...原创 2020-06-24 13:35:20 · 302 阅读 · 0 评论 -
lc_bfs_117_connect
题目:填充每个节点的下一个右侧节点指针II middlepackage leetCode.BFS;public class lc_bfs_117_connect {/*题目:填充每个节点的下一个右侧节点指针II middle给定一个二叉树struct Node { int val; Node *left; Node *right; Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针.原创 2020-06-24 11:17:19 · 88 阅读 · 0 评论 -
lc_bfs_102_levelOrder
题目:二叉树的层序遍历 middle给你一个二叉树,请你返回其按 层序遍历 得到的节点值。(即逐层地,从左到右访问所有节点)。package leetCode.BFS;import java.util.LinkedList;import java.util.List;public class lc_bfs_102_levelOrder {/*题目:二叉树的层序遍历 middle给你一个二叉树,请你返回其按 层序遍历 得到的节点值。(即逐层地,从左到右访问所有节点)。示例:二叉.原创 2020-06-24 11:15:33 · 111 阅读 · 0 评论