day-102 二进制矩阵中的最短路径


思路

BFS

解题过程

从起点依次向八个方向尝试(之后也一样),如果某个位置在矩阵内且值为0且没有访问过,将其添加到一个队列中,依次类推,直到到达出口

Code

java 复制代码
class Solution {
    public int shortestPathBinaryMatrix(int[][] grid) {
        int ans = 1;
        int nn = grid.length;
        int vis[][] = new int[nn][nn];
        vis[0][0] = 1;
        LinkedList<int[]> q = new LinkedList<>();
        if (grid[0][0] == 1)
            return -1;
        q.add(new int[] { 0, 0 });
        while (!q.isEmpty()) {
            int len = q.size();
            for (int i = 0; i < len; i++) {
                int arr[] = q.poll();
                int x = arr[0];
                int y = arr[1];
                if (x == nn - 1 && y == nn - 1)
                    return ans;
                for (int m = x - 1; m <= x + 1; m++) {
                    for (int n = y - 1; n <= y + 1; n++) {
                        if (0 <= m && m < nn && 0 <= n && n < nn && vis[m][n] == 0
                                && grid[m][n] == 0) {
                            grid[m][n] = 1;
                            q.offer(new int[] { m, n });
                        }
                    }
                }
            }
            ans++;
        }
        return -1;
    }

}

作者:菜卷
链接:https://leetcode.cn/problems/shortest-path-in-binary-matrix/solutions/3034582/er-jin-zhi-ju-zhen-zhong-de-zui-duan-lu-xsg22/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
相关推荐
王_teacher13 小时前
机器学习 矩阵求导 完整公式+严谨推导
人工智能·线性代数·考研·机器学习·矩阵·线性回归
做cv的小昊20 小时前
【TJU】研究生应用统计学课程笔记(2)——第一章 数理统计的基本知识(1.3 统计中常用的分布族)
笔记·线性代数·数学建模·矩阵·概率论·学习方法·抽象代数
二等饼干~za8986681 天前
GEO 源码部署搭建详细操作教程(2026 最新版)
线性代数·django·开源·音视频·ai-native
Pentane.1 天前
【力扣hot100】【Leetcode 54】螺旋矩阵|边界控制 算法笔记及打卡(19/100)
算法·leetcode·矩阵
博.闻广见1 天前
AI_线性代数-6.PCA降维详解
人工智能·线性代数
做cv的小昊1 天前
【TJU】研究生应用统计学课程笔记(3)——第一章 数理统计的基本知识(1.4 正态总体的样本均值和样本方差的分布、1.5 充分统计量和完备统计量)
笔记·学习·线性代数·机器学习·数学建模·概率论
mxwin1 天前
Unity URP 下 TBN 矩阵学习 切线空间、tangent.w 与镜像 UV 的那些坑
学习·unity·矩阵·shader
Dxy12393102161 天前
Elasticsearch 8 如何进行二维矩阵向量搜索
大数据·elasticsearch·矩阵
MediaTea1 天前
Scikit-learn:特征矩阵与目标变量
人工智能·python·机器学习·矩阵·scikit-learn
Jasmine_llq2 天前
《B4259 [GESP202503 二级] 等差矩阵》
线性代数·矩阵·顺序输入输出算法·双重循环遍历算法·行列乘积计算算法·矩阵逐行输出算法·空格分隔输出算法