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)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
相关推荐
独立开发之道7 小时前
【three.js教程】Three.js 运行时更新:矩阵、几何体、材质怎么改才不卡
javascript·矩阵·材质
船厂电气自动化ai大模型7 小时前
AI大模型与数学/第63课:矩阵定义、矩阵加法、标量乘法(逐级精讲)
数据结构·人工智能·深度学习·线性代数·算法
张宇Joaquin11 小时前
鲲鹏统一并行加速库KUPL--异步数据拷贝
线性代数·算法·矩阵·numpy
独立开发之道16 小时前
【three.js教程】Three.js 矩阵变换:position/quaternion/scale 和 matrix 到底怎么配合
开发语言·javascript·矩阵
小翰生信17 小时前
转录组下游分析全流程:DESeq2 差异分析、GO/KEGG 富集与 GSEA 实战
数据库·矩阵·golang
AI_yangxi1 天前
靠谱的短视频矩阵系统
大数据·人工智能·矩阵
浪里镖客1 天前
位姿转换矩阵写法-个人习惯(计算机理解其实是相反的)
线性代数·算法·矩阵
张宇Joaquin1 天前
鲲鹏计算平台矩阵乘算子SGEMM优化实践——下篇
线性代数·矩阵
船厂电气自动化ai大模型2 天前
AI大模型与数学第64课:矩阵×向量乘法(神经网络矩阵运算底层)
数据结构·深度学习·线性代数·机器学习·推荐算法
guanguan0_02 天前
用 AI 做技术方案评审:输入 3 个方案,输出对比矩阵 + 推荐理由
javascript·人工智能·矩阵·ai编程