美文网首页
LeetCode 第463题:岛屿的周长

LeetCode 第463题:岛屿的周长

作者: 放开那个BUG | 来源:发表于2020-08-09 10:37 被阅读0次

    1、前言

    题目描述

    2、思路

    思路

    主要是这个图,找到有长度的地方,为越界处或者是0处。

    3、代码

    class Solution {
        public int islandPerimeter(int[][] grid) {
            int M = grid.length;
            int N = grid[0].length;
            for(int i = 0; i < M; i++){
                for(int j = 0; j < N; j++){
                    // 只有一个岛屿
                    if(grid[i][j] == 1){
                        return dfs(grid, i, j);
                    }
                }
            }
    
            return 0;
        }
    
        private int dfs(int[][] grid, int i, int j){
            if(i < 0 || i >= grid.length || j < 0 || j >= grid[0].length || grid[i][j] == 0){
                return 1;
            }
            if(grid[i][j] == 2){
                return 0;
            }
    
            grid[i][j] = 2;
            return dfs(grid, i + 1, j) + dfs(grid, i - 1, j) 
            + dfs(grid, i, j + 1) + dfs(grid, i, j - 1);
        }
    }
    

    相关文章

      网友评论

          本文标题:LeetCode 第463题:岛屿的周长

          本文链接:https://www.haomeiwen.com/subject/fddorktx.html