【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;
};
相关推荐
北域码匠4 小时前
高通滤波算法深度解析(High-Pass Filter)
stm32·算法·c#·数字信号处理·嵌入式开发·滤波算法·高通滤波
指掀涛澜天下惊5 小时前
强化学习进阶篇八 策略梯度算法
深度学习·学习·算法·强化学习
乌萨奇也要立志学C++5 小时前
【洛谷】kmp算法
开发语言·算法
禹凕5 小时前
Dijkstra算法详解与应用
python·算法
YaraMemo6 小时前
元启发式算法框架
人工智能·算法·5g·信息与通信·启发式算法·信号处理
weixin_307779136 小时前
一维无粘 Burgers 方程的激波形成问题:MacCormack 格式求解
c++·算法·matlab
HugoStudio_SWAN7 小时前
洛谷 B4500 / B4449 / B3843 凯撒密码、密码强度与密码合规——加密与安全的三道门
c++·学习·程序人生·算法·安全
枫叶林FYL8 小时前
【群体智能集群控制工程实践】第3章 一致性协同算法
算法
禹凕8 小时前
滑动窗口算法实战指南
python·算法
DisonTangor8 小时前
【腾讯混元雪耻归来】 Hy4 preview:770B 参数 MoE 旗舰模型,1M 上下文全面开源
人工智能·算法·开源·aigc·腾讯云·腾讯云ai代码助手