发布于: 2024-8-18最后更新: 2024-9-12字数 00 分钟

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:
notion image
示例 2:
notion image
示例 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
这里是代码的简要解释:
  1. g 被初始化为一个列表,列表中的每个元素都是一个空列表,用于存储从该节点出发的所有边。
  1. 红色边和蓝色边分别以 (目标节点, 颜色) 的形式添加到图中。
  1. dis 数组用于存储从节点 0 到每个节点的最短交替路径长度,初始值设为 -1。
  1. vis 集合初始化包含节点 0 的两种颜色的边,即红色和蓝色。
  1. q 队列初始化包含两个元素:(0, 0) 和 (0, 1),表示从节点 0 开始的红色和蓝色边。
  1. level 变量用于记录当前BFS的层级,初始值为 0。
  1. 在 BFS 循环中,对于队列中的每个节点和颜色组合,如果该节点的最短路径尚未确定(即 dis== -1),则更新其最短路径长度。
  1. 对于每个节点,检查其所有邻接边,如果邻接边的颜色与当前颜色不同,并且这个边的颜色组合尚未被访问过,则将其添加到 vis 集合和队列 q 中。
  1. 每处理完一层,level 增加 1,然后继续处理下一层。
  1. 最后返回 dis 数组,它包含了从节点 0 到每个节点的最短交替路径长度。

102. 二叉树的层序遍历 - 力扣(LeetCode)

给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。
示例 1:
notion image
示例 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:
notion image
示例 2:
示例 3:
提示:
  • m == grid.length
  • n == grid[i].length
  • 1 <= m, n <= 10
  • grid[i][j] 仅为 01 或 2
 

Loading...
刷题记录——回溯

🗒️刷题记录——回溯


刷题记录——字符串

🗒️刷题记录——字符串