news 2026/6/10 17:24:29

⭐力扣刷题:岛屿数量

作者头像

张小明

前端开发工程师

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/6/10 15:12:39

OctoThinker 通过改进 Llama 来支持强化学习,展示了中间学习的威力

概述 本文是一项研究&#xff0c;旨在强调中期训练&#xff08;mid-training&#xff09;在使 Llama 等一般基础模型通过强化学习&#xff08;RL&#xff09;获得高级推理能力方面的有效性。我们特别关注了基于 Qwen 的模型和基于 Llama 的模型在 RL 扩展行为上的差异&#xff…

作者头像 李华
网站建设 2026/6/10 15:12:48

AI邮件助手:颠覆传统邮件处理的智能革命

AI邮件助手&#xff1a;颠覆传统邮件处理的智能革命 【免费下载链接】ai-collection The Generative AI Landscape - A Collection of Awesome Generative AI Applications 项目地址: https://gitcode.com/gh_mirrors/ai/ai-collection 每天面对堆积如山的邮件&#xff…

作者头像 李华
网站建设 2026/6/10 15:11:55

云手机应用行业分析

云手机是一种基于云计算技术的虚拟手机服务&#xff0c;它在云端运行完整的 Android 系统&#xff0c;用户通过客户端&#xff08;如 App 或网页&#xff09;远程连接并操作这台“手机”。与实体手机不同&#xff0c;云手机不受本地硬件限制&#xff0c;具备高弹性、高安全性、…

作者头像 李华
网站建设 2026/6/10 13:42:35

23、Fedora系统管理:用户组、打印与系统监控全解析

Fedora系统管理:用户组、打印与系统监控全解析 1. 用户组管理 在系统中添加用户到组,可按以下步骤操作: 1. 点击“Group Users”选项卡,该选项卡的下拉列表包含系统中所有已配置的用户(包括隐藏的系统用户),勾选要添加到组的用户。 2. 点击“OK”应用更改,新添加的…

作者头像 李华
网站建设 2026/6/10 16:51:10

26、打造无线接入点与共享打印机全攻略

打造无线接入点与共享打印机全攻略 在当今数字化的时代,网络连接和设备共享变得至关重要。本文将详细介绍如何创建自己的无线接入点以及如何设置 Samba 打印服务器,让你的网络使用更加便捷和高效。 自制无线接入点的十个步骤 要自制一个无线接入点,需要完成一系列的配置和…

作者头像 李华