【leetcode】200. 岛屿数量

目录

题目

深度优先搜索

遍历二维数组,遇到"陆地"就用dfs标记或者"沉岛",并记录下岛屿个数即可。

js 复制代码
/**
 * @param {character[][]} grid
 * @return {number}
 */
var numIslands = function(grid) {
    const m = grid.length, n = grid[0].length;

    function dfs(x, y) {
        // 如果越界或不是陆地就结束
        if (x < 0 || x >= m || y < 0 || y >= n || grid[x][y] !== '1') {
            return;
        }
        grid[x][y] = '0';
        dfs(x, y - 1); // 左
        dfs(x, y + 1); // 右
        dfs(x - 1, y); // 上
        dfs(x + 1, y); // 下
    }

    let res = 0;
    for (let i = 0; i < m; i++) {
        for (let j = 0; j < n; j++) {
            if (grid[i][j] === '1') {
                dfs(i, j);
                res++;
            }
        }
    }
    return res;
};
相关推荐
Nil2082 小时前
leetcode 54螺旋矩阵
算法·leetcode·矩阵
依然鸣3 小时前
PTA团体程序设计天梯赛L1真题讲解L1-077-080
开发语言·c++·算法·深度优先·pat考试·图论
qeen875 小时前
【数据结构】自平衡二叉搜索树各种旋转算法原理解析及AVL树的C++实现
数据结构·c++·算法
lucas_AI6 小时前
1.2B 小模型赢过 235B 大模型:NaviDC-OCR 把文档解析卷明白了
人工智能·深度学习·算法
冻柠檬飞冰走茶6 小时前
PTA基础编程题目集 7-35有理数均值(C++语言实现)
开发语言·数据结构·c++·算法·均值算法
民乐团扒谱机7 小时前
【微实验】倒谱算法(Cepstrum)深度解析:原理、数学推导与代码实现
人工智能·算法·语音识别
evans在进步7 小时前
LeetCode 394:字符串解码——Java 单栈模拟与嵌套解析详解
java·python·leetcode
Nil2087 小时前
leetcode 189轮转数组
数据结构·算法·leetcode