首页 > 其他 > 详细

力扣5366. 检查网格中是否存在有效路径的简单题解

时间:2020-03-23 00:56:58      阅读:71      评论:0      收藏:0      [点我收藏+]

首先别管那么多,既然规定了必须跟着管道走,咱就跟着管道走,比如说当前管道可以连接右,那么我们就判断他左连的那个管道是否可以连接左(这样才能两个管道才想通),如果连接咋就过去,dfs操作。其他方向同理。

代码

class Solution {
    boolean b =false;
    int lx,ly;
    public boolean hasValidPath(int[][] grid) {
        lx = grid.length;
        ly = grid[0].length;
        fun(0,0,grid);
        return b;
    }
    public void fun(int x,int y,int[][] grid){
        if(x == lx-1 && y == ly-1){
            b = true;
        }
        int t = grid[x][y];
        grid[x][y] = 0;
        switch(t){
            case 1:
                if(y-1 >= 0){ // 记录此处踩坑,两个条件不能写一起。
                    if(grid[x][y-1] == 1 || grid[x][y-1] == 4 || grid[x][y-1] == 6){
                        fun(x,y-1,grid);
                    }
                }
                if(y+1 < ly){
                    if(grid[x][y+1] == 3 || grid[x][y+1] == 3 || grid[x][y+1] == 5){
                        fun(x,y+1,grid);
                    }
                }
            case 2:
                if(x-1 >= 0){
                    if(grid[x-1][y] == 2 || grid[x-1][y] == 3 || grid[x-1][y] == 4){
                        fun(x-1,y,grid);
                    }

力扣5366. 检查网格中是否存在有效路径的简单题解

原文:https://www.cnblogs.com/ztabk/p/12549633.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!