day59(1.18)——leetcode面试经典150

200. 岛屿数量

200. 岛屿数量

题目:

题解:

java 复制代码
class Solution {
    int l,r;
    boolean[][] flag;
    int sum = 0; 
    public int numIslands(char[][] grid) {
        l = grid.length;
        r = grid[0].length;
        flag = new boolean[l][r];
        for(int i=0;i<l;i++) {
            for(int j=0;j<r;j++) {
                if(grid[i][j] == '1' && !flag[i][j]) {
                    dfs(grid,i,j);
                    sum++;
                }
            }
        }
        return sum;
    }
    
    public void dfs(char[][] grid, int x, int y) {
        if(x<0 || y<0 || x >= l || y >= r || grid[x][y] == '0' || flag[x][y] == true) {
            return;
        }
        flag[x][y] = true;
        dfs(grid,x+1,y);
        dfs(grid,x,y+1);
        dfs(grid,x-1,y);
        dfs(grid,x,y-1);
    }
}
相关推荐
I_LPL6 小时前
hot100贪心专题
数据结构·算法·leetcode·贪心
颜酱6 小时前
DFS 岛屿系列题全解析
javascript·后端·算法
WolfGang0073217 小时前
代码随想录算法训练营 Day16 | 二叉树 part06
算法
2401_831824968 小时前
代码性能剖析工具
开发语言·c++·算法
Sunshine for you9 小时前
C++中的职责链模式实战
开发语言·c++·算法
qq_416018729 小时前
C++中的状态模式
开发语言·c++·算法
2401_884563249 小时前
模板代码生成工具
开发语言·c++·算法
2401_831920749 小时前
C++代码国际化支持
开发语言·c++·算法
m0_6727033110 小时前
上机练习第51天
数据结构·c++·算法
ArturiaZ10 小时前
【day60】
算法·深度优先·图论