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)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
相关推荐
工藤新一¹15 小时前
蓝桥杯算法题 -蛇形矩阵(方向向量)
c++·算法·矩阵·蓝桥杯·方向向量
Despacito0o18 小时前
RGB矩阵照明系统详解及WS2812配置指南
c语言·线性代数·矩阵·计算机外设·qmk
唐山柳林18 小时前
现代化水库运行管理矩阵平台如何建设?
线性代数·矩阵
SZ1701102312 天前
泰勒展开式
线性代数·概率论
passionSnail3 天前
《用MATLAB玩转游戏开发:从零开始打造你的数字乐园》基础篇(2D图形交互)-俄罗斯方块:用旋转矩阵打造经典
算法·matlab·矩阵·游戏程序·交互
Akiiiira4 天前
【日撸 Java 三百行】Day 7(Java的数组与矩阵元素相加)
线性代数·矩阵
HHONGQI1234 天前
LVGL- 按钮矩阵控件
矩阵·lvlgl
元亓亓亓5 天前
LeetCode热题100--54.螺旋矩阵--中等
算法·leetcode·矩阵
小羊在奋斗5 天前
【今日三题】ISBN号码(模拟) / kotori和迷宫(BFS最短路) / 矩阵最长递增路径(dfs)
矩阵·深度优先·宽度优先
18538162800余--5 天前
短视频矩阵系统批量剪辑模式开发详解,支持OEM
线性代数·ui·矩阵·音视频·概率论