【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);
    }
}
相关推荐
不見星空16 分钟前
leetcode 每日一题 1865. 找出和为指定值的下标对
算法·leetcode
我爱Jack27 分钟前
时间与空间复杂度详解:算法效率的度量衡
java·开发语言·算法
DoraBigHead2 小时前
小哆啦解题记——映射的背叛
算法
Heartoxx2 小时前
c语言-指针与一维数组
c语言·开发语言·算法
孤狼warrior3 小时前
灰色预测模型
人工智能·python·算法·数学建模
京东云开发者3 小时前
京东零售基于国产芯片的AI引擎技术
算法
chao_7894 小时前
回溯题解——子集【LeetCode】二进制枚举法
开发语言·数据结构·python·算法·leetcode
十盒半价4 小时前
从递归到动态规划:手把手教你玩转算法三剑客
javascript·算法·trae
GEEK零零七4 小时前
Leetcode 1070. 产品销售分析 III
sql·算法·leetcode
凌肖战4 小时前
力扣网编程274题:H指数之普通解法(中等)
算法·leetcode