剑指Offer || 105.岛屿的最大面积

题目

给定一个由 0 和 1 组成的非空二维数组 grid ,用来表示海洋岛屿地图。

一个 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在水平或者竖直方向上相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。

找到给定的二维数组中最大的岛屿面积。如果没有岛屿,则返回面积为 0 。

示例 1:

输入: grid = [[0,0,1,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,1,1,0,1,0,0,0,0,0,0,0,0],[0,1,0,0,1,1,0,0,1,0,1,0,0],[0,1,0,0,1,1,0,0,1,1,1,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,0,0,0,0,0,0,1,1,0,0,0,0]]
输出: 6
解释: 对于上面这个给定矩阵应返回 6。注意答案不应该是 11 ,因为岛屿只能包含水平或垂直的四个方向的 1 。

示例 2:

输入: grid = [[0,0,0,0,0,0,0,0]]
输出: 0

提示:

  • m == grid.length
  • n == grid[i].length
  • 1 <= m, n <= 50
  • grid[i][j] is either 0 or 1

注意:本题与主站 695 题相同: 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

LCR 105. 岛屿的最大面积 - 力扣(LeetCode)

题解

思路:深搜,主要是记录搜过的陆地,可以使其grid[i][j]从1变0.

代码:

class Solution {
    public int maxAreaOfIsland(int[][] grid) {
    	int ans=0;
    	for(int i=0;i<grid.length;i++) {
    		for(int j=0;j<grid[0].length;j++) 
    			ans=Math.max(ans, dfs(grid,i,j));
    	}
    	return ans;
    }
    public int dfs(int[][] grid,int i, int j) {
    	if(i==-1||j==-1||i==grid.length||j==grid[0].length||grid[i][j]==0) return 0;
    	grid[i][j]=0;
    	int[] di= {0,0,1,-1};
    	int[] dj= {1,-1,0,0};
    	int ans=1;
    	for(int index=0;index<4;index++) 
    		ans+=dfs(grid,i+di[index],j+dj[index]);
    	return ans;
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/156582.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

div中一个div怎么在高度上居中,小div在大div的高度的中间

实现效果: 让这个去分享在高度上的居中 答案: 直接设置 margin:auto;

Draco Win10编译

1. 工具 CMake 3.2.8&#xff0c;Visual Studio 2019 2. 步骤 2.1 拷贝代码 git clone https://github.com/google/draco.gitgit clone https://github.com/google/draco.git 下载第三方依赖 git submodule sync git submodule update --init --recursive 2.2 CMake编译…

Linux Shell脚本的10个有用的“面试问题和解答”

Shell 是什么&#xff1f; 在 Linux 中&#xff0c;Shell 是一个应用程序 &#xff0c;它是用户与 Linux 内核沟通的桥梁。 它负责接收用户输入的命令&#xff0c;根据用户的输入找到其他程序并运行&#xff0c;Shell负责将应用层或者用户输入的命令传递给系统内核&#xff0…

《全程软件测试 第三版》拆书笔记

第一章 对软件测试的全面认识&#xff0c;测试不能是穷尽的 软件测试的作用&#xff1a; 1.产品质量评估&#xff1b;2.持续质量反馈&#xff1b;3.客户满意度提升&#xff1b;4.缺陷的预防 正反思维&#xff1a;正向思维&#xff08;广度&#xff0c;良好覆盖面&#xff09;逆…

利用IP地址查询优化保险理赔与业务风控的实用方法

随着数字化时代的到来&#xff0c;保险行业正逐渐采用先进的技术来改善理赔流程和强化业务风控。其中&#xff0c;通过IP地址查询成为一种有效的手段&#xff0c;为保险公司提供更精准的信息&#xff0c;以便更好地管理风险和提高服务效率。本文将探讨如何利用IP地址查询优化保…

AD教程 (十七)3D模型的创建和导入

AD教程 &#xff08;十七&#xff09;3D模型的创建和导入 对于设计者来讲&#xff0c;现在3DPCB比较流行&#xff0c;3DPCB&#xff0c;除了美观之外&#xff0c;做3D的最终的一个目的&#xff0c;是为了去核对结构&#xff0c;就是我们去做了这么一个PCB之后&#xff0c;如果说…

外汇天眼:什么是非农?非农数据对外汇市场的重要性!

非农数据在外汇市场中扮演着何等关键的角色&#xff1f; 美国非农数据&#xff0c;简称“非农”&#xff0c;具体指排除农业部门、个体户和非盈利机构雇员后的就业相关数据&#xff0c;是反映美国经济实际就业和整体经济状况的关键指标。该数据由美国劳工部劳动统计局每月发布…

GZ038 物联网应用开发赛题第9套

2023年全国职业院校技能大赛 高职组 物联网应用开发 任 务 书 &#xff08;第9套卷&#xff09; 工位号&#xff1a;______________ 第一部分 竞赛须知 一、竞赛要求 1、正确使用工具&#xff0c;操作安全规范&#xff1b; 2、竞赛过程中如有异议&#xff0c;可向现场考评…

深度学习实战60-基于深度学习模型搭建人脸识别系统,用最简单的方式实现人脸识别。

大家好,我是微学AI,今天给大家介绍一下深度学习实战60-基于深度学习模型搭建人脸识别系统,用最简单的方式实现人脸识别。本项目是一个基于人脸识别技术的应用项目。它旨在构建一个可靠、高效的人脸识别系统,以应用于安全、身份验证和人员管理等领域。项目的核心原理包括人脸…

二叉树题目:统计二叉树中好结点的数目

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 题目 标题和出处 标题&#xff1a;统计二叉树中好结点的数目 出处&#xff1a;1448. 统计二叉树中好结点的数目 难度 5 级 题目描述 要求 给定一…

【AI编程助手】Devchat解析:深入了解、快速配置与实际应用

AI编程助手已经成为现代软件开发的重要工具之一。本文将深入探讨Devchat这一AI编程助手&#xff0c;包括其工作原理、快速配置以及实际应用案例。了解Devchat&#xff0c;将使开发人员更高效地编写和优化代码&#xff0c;提升软件开发过程的质量和速度。 引言 人工智能的迅速发…

【LeetCode刷题-滑动窗口】--159.至多包含两个不同字符的最长子串

159.至多包含两个不同字符的最长子串 方法&#xff1a;滑动窗口 定义两个指针left和right作为窗口的边界&#xff0c;将两个指针都设定在位置0&#xff0c;然后向右移动right指针&#xff0c;直到窗口内不超过两个不同的字符&#xff0c;如果某一点我们得到了3个不同的字符&am…

中文撰稿好用软件推荐TexPage(似于Overleaf)

由于本人用惯了overleaf所以找到了一个与他功相似的也同样是利用tex写文章。唯一的区别可能也就是overleaf只支持英文&#xff0c;而TexPage中英文都支持。关键是不花钱&#xff0c;好用好用好用&#xff0c;用起来&#xff01; 平台网址&#xff1a;https://www.texpage.com/…

git撤销未git commit的文件

目录 一、问题描述 二、方式1&#xff1a;git命令撤销&#xff08;更专业&#xff09; 1、文件已git add&#xff0c;未git commit 2、本地修改&#xff0c;未git add &#xff08;1&#xff09;撤销处于unstage的文件&#xff0c;即删除已有变动 &#xff08;2&#xff…

全套完整版实战型Java云HIS系统源码

一、云HIS系统框架简介 1、技术框架 &#xff08;1&#xff09;总体框架&#xff1a; SaaS应用&#xff0c;全浏览器访问 前后端分离&#xff0c;多服务协同 服务可拆分&#xff0c;功能易扩展 &#xff08;2&#xff09;技术细节&#xff1a; 前端&#xff1a;AngularN…

H3C交换机IRF2堆叠配置方法

文章目录 一、IRF配置需求说明二、IRF配置步骤2.1 配置设备编号2.2 配置堆叠口2.3 BFD分裂检测&#xff08;选配&#xff09; 关键配置说明推荐阅读 一、IRF配置需求说明 由于网络规模迅速扩大&#xff0c;当前中心交换机&#xff08;Device A&#xff09;转发能力已经不能满足…

缺陷预测(一)——论文复现(pipeline)

运行pipeline文件 出现的问题&#xff1a;找不到路径原因&#xff1a;结果 出现新问题&#xff1a;2023年11月14日22:12:22 出现的问题 出现的问题&#xff1a;找不到路径 FileNotFoundError: [Errno 2] No such file or directory:./downstream_task/data/results/within_p…

数据加解密系统(揭秘数据解密的关键技术)

数据加解密系统是一种用于保护数据安全的系统&#xff0c;它可以将数据加密以防止未经授权的访问和数据泄露&#xff0c;同时也可以将已加密的数据解密以供授权用户使用。 随着网络技术和电子商务的不断发展&#xff0c;数据安全问题越来越受到人们的关注。数据加解密系统被广泛…

猫罐头哪个牌子好?推荐5款猫罐头品牌排行榜!

选择猫罐头是一项非常重要的任务&#xff0c;绝对不能马虎对待。因为好的猫罐头不仅提供丰富的营养&#xff0c;充足的水分和良好的口感&#xff0c;还能被猫咪轻松吸收。然而&#xff0c;一旦选择错误&#xff0c;不仅无法达到这些效果&#xff0c;还可能产生相反的影响。 作为…

【Android】设置全局标题栏

序言 在做项目的时候&#xff0c;有时候需要一个全局统一的标题栏&#xff0c;保证项目风格的统一&#xff0c;但是如果在每个activity上面都写一遍这个标题栏就很麻烦了&#xff0c;我们经常用的方法就是写个基类Activity&#xff0c;然后当某个Activity需要这个统一的标题栏…