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

    }
}
相关推荐
阿Y加油吧8 分钟前
二分查找进阶:旋转排序数组的两道经典题深度解析
数据结构·算法
想带你从多云到转晴12 分钟前
05、数据结构与算法---栈与队列
java·数据结构·算法
無限進步D13 分钟前
蓝桥杯赛后总结
算法·蓝桥杯·竞赛
QuZero17 分钟前
ReentrantLock principle
java·算法
m0_7167652319 分钟前
数据结构--顺序表的插入、删除、查找详解
c语言·开发语言·数据结构·c++·学习·算法·visual studio
Jasmine_llq20 分钟前
《B3954 [GESP202403 二级] 乘法问题》
算法·顺序输入输出算法·布尔标记算法·累乘算法·循环迭代算法·阈值判断算法·条件分支输出算法
Halo_tjn21 分钟前
Java 抽象类 知识点
java·开发语言·算法
say_fall21 分钟前
滑动窗口算法
数据结构·c++·算法
落羽的落羽22 分钟前
【算法札记】练习 | Week1
linux·服务器·c++·人工智能·python·算法·机器学习
人道领域24 分钟前
【LeetCode刷题日记】15.三数之和(梦破碎的地方)
算法·leetcode·面试