【DFS】200.岛屿数量

题目

法1:岛屿数量

java 复制代码
class Solution {
    public int numIslands(char[][] grid) {
        int m = grid.length, n = grid[0].length;
        int[][] used = new int[m][n];
        int res = 0;
        for (int i = 0; i < m; ++i) {
            for (int j = 0; j < n; ++j) {
                if (grid[i][j] == '0' || used[i][j] == 1) {
                    continue;
                }
                ++res;
                dfs(i, j, grid, used, m, n);
            }
        }

        return res;
    }

    public void dfs(int i, int j, char[][] grid, int[][] used, int m, int n) {
        if (i < 0 || i >= m 
                || j < 0 || j >= n 
                || grid[i][j] == '0' || used[i][j] == 1) {
            return;
        }
        used[i][j] = 1;

        dfs(i - 1, j, grid, used, m, n); 
        dfs(i + 1, j, grid, used, m, n);
        dfs(i, j - 1, grid, used, m, n); 
        dfs(i, j + 1, grid, used, m, n);
    }
}
相关推荐
haing20191 分钟前
使用黄金分割法计算Bezier曲线曲率极值的方法介绍
算法·黄金分割
leoufung7 分钟前
LeetCode 230:二叉搜索树中第 K 小的元素 —— 从 Inorder 遍历到 Order Statistic Tree
算法·leetcode·职场和发展
jyyyx的算法博客10 分钟前
多模字符串匹配算法 -- 面试题 17.17. 多次搜索
算法
da_vinci_x11 分钟前
Sampler AI + 滤波算法:解决 AIGC 贴图“噪点过剩”,构建风格化 PBR 工业管线
人工智能·算法·aigc·材质·贴图·技术美术·游戏美术
惊鸿.Jh14 分钟前
503. 下一个更大元素 II
数据结构·算法·leetcode
chao18984419 分钟前
MATLAB 实现声纹识别特征提取
人工智能·算法·matlab
zhishidi21 分钟前
推荐算法之:GBDT、GBDT LR、XGBoost详细解读与案例实现
人工智能·算法·推荐算法
货拉拉技术22 分钟前
货拉拉RAG优化实践:从原始数据到高质量知识库
数据库·算法
AKDreamer_HeXY33 分钟前
ABC434E 题解
c++·算法·图论·atcoder
罗湖老棍子33 分钟前
完全背包 vs 多重背包的优化逻辑
c++·算法·动态规划·背包