博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Leetcode] Number of Islands 岛屿数量(JavaScript 实现)
阅读量:6940 次
发布时间:2019-06-27

本文共 1257 字,大约阅读时间需要 4 分钟。

Q: Number of Islands

Given a 2d grid map of '1's (land) and '0's (water), count the number of islands. An island is surrounded by water and is formed by connecting adjacent lands horizontally or vertically. You may assume all four edges of the grid are all surrounded by water.

Example 1:

Input:

11110
11010
11000
00000

Output: 1

Example 2:

Input:

11000
11000
00100
00011

Output: 3

解题思路

标零法

对这个矩阵进行循环访问每一个点;

当这个点等于 1,岛屿数量 count++,与其同时用 dfs 算法(depth first search)访问周围的其他点,进行同样的操作;
且将访问过且等于 1 的点标记为零。

Solutions (JavaScript 版本)

/** * @param {character[][]} grid * @return {number} */var numIslands = function(grid) {    var count = 0    // 岛屿数量    if (grid.length === 0) return count    for (var i = 0; i < grid.length; i++) {        for(var j = 0; j < grid[0].length; j++) {            if (grid[i][j] === '1') {                dfsSearch(grid, i, j)                count++            }        }    }    return count};function dfsSearch(grid, i, j) {    if(i < 0 || j < 0 || i >= grid.length || j >= grid[0].length) return;    if(grid[i][j] === '1'){        grid[i][j] = '0';        dfsSearch(grid, i + 1, j);    // 搜索右边        dfsSearch(grid, i - 1, j);    // 搜索左边        dfsSearch(grid, i, j + 1);    // 搜索下边        dfsSearch(grid, i, j - 1);    // 搜索上边    }}

转载地址:http://qksnl.baihongyu.com/

你可能感兴趣的文章
数据中心由“限”转“疏”
查看>>
MYSQL连接Error (1133): Can’t find any matching row in the user table错误的解决办法
查看>>
Appium自动化测试之微信元素识别和代码实战
查看>>
网络管理维护技巧:五招提速杀毒软件效率
查看>>
EF 安装框架
查看>>
Typescript开发nodejs项目+调试
查看>>
tree与GridView交互
查看>>
压缩算法
查看>>
PowerDesigner中批量替换name和code的脚本
查看>>
关于‘暗时间’随笔
查看>>
Javascript 中 检查一个数组是否包含某对象
查看>>
网络基础与配置
查看>>
BZOJ1050旅游
查看>>
HNOI2002营业额统计
查看>>
初步学习thinkphp5.0
查看>>
Linux常用命令(二)--文件目录命令
查看>>
tomcat启动报错
查看>>
java中生成不重复随机的数字
查看>>
由《旧制度与大革命》提取的5个感触
查看>>
hibernate 配置
查看>>