type
status
date
slug
summary
tags
category
icon
password
1091. 二进制矩阵中的最短路径 - 力扣(LeetCode)
给你一个
n x n
的二进制矩阵 grid
中,返回矩阵中最短 畅通路径 的长度。如果不存在这样的路径,返回 -1
。二进制矩阵中的 畅通路径 是一条从 左上角 单元格(即,
(0, 0)
)到 右下角 单元格(即,(n - 1, n - 1)
)的路径,该路径同时满足下述要求:- 路径途经的所有单元格的值都是
0
。
- 路径中所有相邻的单元格应当在 8 个方向之一 上连通(即,相邻两单元之间彼此不同且共享一条边或者一个角)。
畅通路径的长度 是该路径途经的单元格总数。
示例 1:

示例 2:

示例 3:
队列+访问,如果没访问过就加入
‣
1129. 颜色交替的最短路径
已解答
中等
相关标签
相关企业
提示
给定一个整数
n
,即有向图中的节点数,其中节点标记为 0
到 n - 1
。图中的每条边为红色或者蓝色,并且可能存在自环或平行边。给定两个数组
redEdges
和 blueEdges
,其中:redEdges[i] = [ai, bi]
表示图中存在一条从节点ai
到节点bi
的红色有向边,
blueEdges[j] = [uj, vj]
表示图中存在一条从节点uj
到节点vj
的蓝色有向边。
返回长度为
n
的数组 answer
,其中 answer[X]
是从节点 0
到节点 X
的红色边和蓝色边交替出现的最短路径的长度。如果不存在这样的路径,那么 answer[x] = -1
。示例 1:
示例 2:
提示:
1 <= n <= 100
0 <= redEdges.length, blueEdges.length <= 400
redEdges[i].length == blueEdges[j].length == 2
0 <= ai, bi, uj, vj < n
这里是代码的简要解释:
- 图
g
被初始化为一个列表,列表中的每个元素都是一个空列表,用于存储从该节点出发的所有边。
- 红色边和蓝色边分别以
(目标节点, 颜色)
的形式添加到图中。
dis
数组用于存储从节点 0 到每个节点的最短交替路径长度,初始值设为 -1。
vis
集合初始化包含节点 0 的两种颜色的边,即红色和蓝色。
q
队列初始化包含两个元素:(0, 0) 和 (0, 1),表示从节点 0 开始的红色和蓝色边。
level
变量用于记录当前BFS的层级,初始值为 0。
- 在 BFS 循环中,对于队列中的每个节点和颜色组合,如果该节点的最短路径尚未确定(即
dis== -1
),则更新其最短路径长度。
- 对于每个节点,检查其所有邻接边,如果邻接边的颜色与当前颜色不同,并且这个边的颜色组合尚未被访问过,则将其添加到
vis
集合和队列q
中。
- 每处理完一层,
level
增加 1,然后继续处理下一层。
- 最后返回
dis
数组,它包含了从节点 0 到每个节点的最短交替路径长度。
102. 二叉树的层序遍历 - 力扣(LeetCode)
给你二叉树的根节点
root
,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。示例 1:

示例 2:
示例 3:
提示:
- 树中节点数目在范围
[0, 2000]
内
1000 <= Node.val <= 1000
752. 打开转盘锁
已解答
中等
相关标签
相关企业
提示
你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字:
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'
。每个拨轮可以自由旋转:例如把 '9'
变为 '0'
,'0'
变为 '9'
。每次旋转都只能旋转一个拨轮的一位数字。锁的初始数字为
'0000'
,一个代表四个拨轮的数字的字符串。列表
deadends
包含了一组死亡数字,一旦拨轮的数字和列表里的任何一个元素相同,这个锁将会被永久锁定,无法再被旋转。字符串
target
代表可以解锁的数字,你需要给出解锁需要的最小旋转次数,如果无论如何不能解锁,返回 -1
。示例 1:
示例 2:
示例 3:
提示:
1 <= deadends.length <= 500
deadends[i].length == 4
target.length == 4
target
不在deadends
之中
target
和deadends[i]
仅由若干位数字组成
i,j的处理是精华
994. 腐烂的橘子
已解答
中等
相关标签
相关企业
在给定的
m x n
网格 grid
中,每个单元格可以有以下三个值之一:- 值
0
代表空单元格;
- 值
1
代表新鲜橘子;
- 值
2
代表腐烂的橘子。
每分钟,腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。
返回 直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回
-1
。示例 1:

示例 2:
示例 3:
提示:
m == grid.length
n == grid[i].length
1 <= m, n <= 10
grid[i][j]
仅为0
、1
或2
- 作者:VON
- 链接:https://baisihan.asia/article/9e6d10ba-3d44-4735-869f-526fccb86380
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。