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

    }
}
相关推荐
一只齐刘海的猫4 小时前
【Leetcode】找到字符串中所有字母异位词
算法·leetcode·职场和发展
海清河晏1115 小时前
数据结构 | 八大排序
数据结构·算法·排序算法
IronMurphy6 小时前
【算法五十七】146. LRU 缓存
算法·缓存
凌波粒6 小时前
LeetCode--108.将有序数组转换为二叉搜索树(二叉树)
算法·leetcode·职场和发展
liulilittle6 小时前
KCC:在 BBR 思路上的一次探索
网络·tcp/ip·算法·bbr·通信·拥塞控制·kcc
浦信仿真大讲堂7 小时前
达索系统SIMULIA Abaqus 2026接触和约束的增强新功能介绍
人工智能·python·算法·仿真软件·达索软件
点云侠7 小时前
PCL 生成三棱锥点云
c++·算法·最小二乘法
兰令水7 小时前
leecodecode【面试150】【2026.6.13打卡-java版本】
java·算法·leetcode
临沂堇7 小时前
刷题日志 | Leetcode Hot 100 哈希
算法·leetcode·哈希算法