Java代码实现以下功能 给你一个 n x n 的二进制矩阵 grid 中返回矩阵中最短 畅通路径 的长度。如果不存在这样的路径返回 -1 。二进制矩阵中的 畅通路径 是一条从 左上角 单元格即0 0到 右下角 单元格即n - 1 n - 1的路径该路径同时满足下述要求:路径途经的所有单元格的值都是 0 。路径中所有相邻的单元格应当在 8 个方向之一 上连通即相邻两单元之间彼此不同且共享一条边或者
解题思路:
本题可以使用广度优先搜索(BFS)来解决,具体思路如下:
- 创建一个队列,将起点(0,0)加入队列。
- 创建一个二维数组visited,用于标记每个点是否已经访问过,起点为已访问。
- 创建一个二维数组distance,用于记录每个点到起点的距离,起点距离为0。
- 使用BFS遍历每个点的相邻点,如果相邻点为0且未访问过,则加入队列,并标记已访问和更新距离。
- 每次从队列中取出一个点进行操作,直到队列为空。
- 最后返回终点(n-1,n-1)的距离,如果该点未访问过,则说明不存在畅通路径,返回-1。
Java代码实现如下:
原文地址: https://www.cveoy.top/t/topic/gsru 著作权归作者所有。请勿转载和采集!