news 2026/9/3 5:47:39

⭐力扣刷题:岛屿数量

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
⭐力扣刷题:岛屿数量

题目:
给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。

岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。

此外,你可以假设该网格的四条边均被水包围。

示例 1:

输入:grid = [
[‘1’,‘1’,‘1’,‘1’,‘0’],
[‘1’,‘1’,‘0’,‘1’,‘0’],
[‘1’,‘1’,‘0’,‘0’,‘0’],
[‘0’,‘0’,‘0’,‘0’,‘0’]
]
输出:1

示例 2:

输入:grid = [
[‘1’,‘1’,‘0’,‘0’,‘0’],
[‘1’,‘1’,‘0’,‘0’,‘0’],
[‘0’,‘0’,‘1’,‘0’,‘0’],
[‘0’,‘0’,‘0’,‘1’,‘1’]
]
输出:3

解析:
本道题我使用了DFS来解题:

1 发现新陆地:每当找到一块未被访问的陆地(‘1’)

2标记沉没:以这块陆地为起点,向四个方向扩散,把所有相连的陆地都"沉没"(标记为’0’)

3 计数岛屿:每发现一次新陆地,就意味着找到了一个新的岛屿

具体代码:

/** * @param {character[][]} grid * @return {number} */varnumIslands=function(grid){letres=0// 岛屿计数器// 遍历整个网格for(leti=0;i<grid.length;i++){for(letj=0;j<grid[0].length;j++){// 发现一块新陆地if(grid[i][j]==='1'){res++// 岛屿数量+1dfs(grid,i,j)// 沉没整个岛屿}}}returnres};// DFS辅助函数:沉没当前岛屿functiondfs(grid,i,j){// 递归终止条件:越界或遇到水if(i<0||j<0||i>=grid.length||j>=grid[0].length||grid[i][j]==='0'){return}// 将当前陆地标记为水(沉没)grid[i][j]='0'// 向四个方向继续探索沉没dfs(grid,i-1,j)// 向上dfs(grid,i+1,j)// 向下dfs(grid,i,j-1)// 向左dfs(grid,i,j+1)// 向右}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 22:20:33

25、打造安全的Linux系统与自建无线接入点全攻略

打造安全的Linux系统与自建无线接入点全攻略 1. 从Mac通过SSH连接到Linux系统 在运行OS X的Mac上通过SSH连接到Linux系统,其过程与在Linux下类似。操作步骤如下: - 打开“应用程序”➪“实用工具”➪“终端”,这将为你打开一个命令行窗口。 - 若要访问远程机器上与你在M…

作者头像 李华
网站建设 2026/9/2 23:12:24

从简单CUDA开始

从简单CUDA开始 我们将从一个简单的C程序开始&#xff0c;这个程序将两个包含一百万个元素的数组相加。下面是完整的代码。 #include <iostream> #include <math.h>// 函数&#xff1a;将两个数组的元素相加 void add(int n, float *x, float *y) {for (int i 0…

作者头像 李华
网站建设 2026/9/2 19:24:24

dnSpy 6.1.8 终极指南:免费的.NET程序集反编译神器

dnSpy是一款完全免费的.NET程序集反编译工具&#xff0c;专为Windows 64位系统设计。这个强大的中文版工具让开发者能够轻松查看、调试和修改.NET程序集&#xff0c;是逆向工程和代码分析的必备利器。 【免费下载链接】dnSpy中文版下载 dnSpy 是一款功能强大的 .NET 反编译工具…

作者头像 李华
网站建设 2026/9/2 22:28:39

TVM测试框架全解析:从算子验证到性能基准的完整指南

TVM测试框架全解析&#xff1a;从算子验证到性能基准的完整指南 【免费下载链接】tvm Open deep learning compiler stack for cpu, gpu and specialized accelerators 项目地址: https://gitcode.com/gh_mirrors/tvm/tvm 深度学习算子的可靠性和性能直接影响整个模型的…

作者头像 李华
网站建设 2026/9/2 21:02:53

申请无人机空域需准备的材料

申请无人机空域需准备的材料申请无人机空域&#xff08;主要针对管制空域及适飞空域特殊情形&#xff09;需准备的材料&#xff0c;需结合申请主体&#xff08;个人/单位&#xff09;、无人机类型及飞行用途区分&#xff0c;核心围绕主体资质、设备信息、飞行计划、安全保障四大…

作者头像 李华