力扣-图论-70【算法学习day.70】

前言

###我做这类文章一个重要的目的还是给正在学习的大家提供方向和记录学习过程(例如想要掌握基础用法,该刷哪些题?)我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴!!!


习题

1.迷宫中离入口最近的出路

题目链接: 1926. 迷宫中离入口最近的出口 - 力扣(LeetCode)

题面:

代码:

java 复制代码
class Solution {
    int[][] dirs = {{1,0},{-1,0},{0,1},{0,-1}};
    public int nearestExit(char[][] maze, int[] entrance) {
        int n = maze.length;
        int m = maze[0].length;
        Queue<int[]> queue = new LinkedList<>();
        queue.offer(entrance);
        maze[entrance[0]][entrance[1]] = '+';
        int count = 0;
        while(queue.size()!=0){
            count++;
            int size = queue.size();
            for(int i = 0;i<size;i++){
                int[] arr =queue.poll();
                int x = arr[0];
                int y = arr[1];
                for(int[] brr:dirs){
                    int nx = x+brr[0];
                    int ny = y+brr[1];
                    if(nx>=0&&nx<=n-1&&ny>=0&&ny<=m-1&&maze[nx][ny]=='.'){
                        if(nx==0||nx==n-1||ny==0||ny==m-1)return count;
                        queue.offer(new int[]{nx,ny});
                         maze[nx][ny]='+';
                    }
                }
            }
        }
        return -1;
    }
}

后言

上面是力扣图论专题,下一篇是其他的习题,希望有所帮助,一同进步,共勉!

相关推荐
CodeClimb几秒前
【华为OD-E卷-简单的自动曝光 100分(python、java、c++、js、c)】
java·python·华为od
风清云淡_A11 分钟前
【java基础系列】实现数字的首位交换算法
java·算法
Gao_xu_sheng14 分钟前
Java程序打包成exe,无Java环境也能运行
java·开发语言
6.9414 分钟前
Scala——身份证号码查询籍贯
学习·scala
涵涵子RUSH15 分钟前
合并K个升序链表(最优解)
算法·leetcode
大卫小东(Sheldon)21 分钟前
Java的HTTP接口测试框架Gatling
java
谢家小布柔22 分钟前
java中的继承
java·开发语言
爱吃西瓜的小菜鸡24 分钟前
【C语言】矩阵乘法
c语言·学习·算法
l1384942745128 分钟前
Java每日一题(2)
java·开发语言·游戏
苹果醋331 分钟前
SpringBoot快速入门
java·运维·spring boot·mysql·nginx