floodfill算法系列一>岛屿数量

解析

整体思路:

代码设计:

代码呈现:

java 复制代码
class Solution {
    int m,n,ret;
    boolean[][] vis;

    public int numIslands(char[][] grid) {
        m = grid.length;
        n = grid[0].length;

        vis = new boolean[m][n];
        for(int i = 0; i < m; i++)
            for(int j = 0; j < n; j++){
                if(!vis[i][j] && grid[i][j] == '1'){
                    ret++;
                    //把这个岛屿附近的1标记一下
                    dfs(grid,i,j);
                }
            }

        return ret;    
    }

    int[] dx = {0,0,-1,1};
    int[] dy = {1,-1,0,0};
    private void dfs(char[][] grid, int i, int j){

        vis[i][j] = true;//标记
        for(int k = 0; k < 4; k++){
            int x = i + dx[k]; int y = j + dy[k];
            if(x >= 0 && x < m && y >= 0 && y < n && !vis[x][y] && grid[x][y] == '1'){
                dfs(grid,x,y);
            }
        }

    }
}
相关推荐
liu****17 小时前
20.哈希
开发语言·数据结构·c++·算法·哈希算法
夏鹏今天学习了吗17 小时前
【LeetCode热题100(47/100)】路径总和 III
算法·leetcode·职场和发展
smj2302_7968265217 小时前
解决leetcode第3721题最长平衡子数组II
python·算法·leetcode
m0_6265352018 小时前
力扣题目练习 换水问题
python·算法·leetcode
第六五18 小时前
DPC和DPC-KNN算法
人工智能·算法·机器学习
一匹电信狗18 小时前
【LeetCode_160】相交链表
c语言·开发语言·数据结构·c++·算法·leetcode·stl
再卷也是菜18 小时前
C++篇(14)二叉树进阶算法题
c++·算法
小邓儿◑.◑18 小时前
贪心算法 | 每周8题(三)
算法·贪心算法
2401_8414956418 小时前
【数据结构】最长的最短路径的求解
java·数据结构·c++·python·算法·最短路径·图搜索
小龙报19 小时前
《算法每日一题(1)--- 连续因子》
c语言·开发语言·c++·windows·git·算法·visual studio