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);
            }
        }

    }
}
相关推荐
杨小码不BUG1 天前
CSP-J/S初赛知识点精讲-图论
c++·算法·图论··编码·csp-j/s初赛
LeaderSheepH1 天前
常见的排序算法
数据结构·算法·排序算法
周杰伦_Jay1 天前
【图文详解】强化学习核心框架、数学基础、分类、应用场景
人工智能·科技·算法·机器学习·计算机视觉·分类·数据挖掘
violet-lz1 天前
Linux静态库与共享库(动态库)全面详解:从创建到应用
算法
贝塔实验室1 天前
ADMM 算法的基本概念
算法·数学建模·设计模式·矩阵·动态规划·软件构建·傅立叶分析
235161 天前
【LeetCode】3. 无重复字符的最长子串
java·后端·算法·leetcode·职场和发展
微笑尅乐1 天前
神奇的位运算——力扣136.只出现一次的数字
java·算法·leetcode·职场和发展
吃着火锅x唱着歌1 天前
LeetCode 3105.最长的严格递增或递减子数组
算法·leetcode·职场和发展
小卡皮巴拉1 天前
【笔试强训】Day1
开发语言·数据结构·c++·算法
初圣魔门首席弟子1 天前
switch缺少break出现bug
c++·算法·bug