leetcode695 岛屿的最大面积

题目

给你一个大小为 m x n 的二进制矩阵 grid 。

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

岛屿的面积是岛上值为 1 的单元格的数目。

计算并返回 grid 中最大的岛屿面积。如果没有岛屿,则返回面积为 0 。

示例

输入: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
解释:答案不应该是 11 ,因为岛屿只能包含水平或垂直这四个方向上的 1 。
在这里插入图片描述

示例

这道题和上一道求岛屿数量的题目,在思想上都是一样的,就是通过dfs来遍历到每个岛屿,同时计算出它的面积来,维护一个面积的最大值即可

func maxAreaOfIsland(grid [][]int) int {var dfs func(grid [][]int, i, j int) intdfs = func(grid [][]int, i, j int) int {if i < 0 || j < 0 || i >= len(grid) || j >= len(grid[0]) || grid[i][j] == 0 {return 0}area := 1grid[i][j] = 0area += dfs(grid, i+1, j)area += dfs(grid, i-1, j)area += dfs(grid, i, j+1)area += dfs(grid, i, j-1)return area}maxArea := 0for i := 0; i < len(grid); i++ {for j := 0; j < len(grid[0]); j++ {if grid[i][j] == 1 {maxArea = max(maxArea, dfs(grid, i, j))}}}return maxArea
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

13. FastLED 示例3则

Best of FastLED Discussions 1. Fire2012&#xff1a; FastLED 火灾模拟器 // Fire2012: a basic fire simulation for a one-dimensional string of LEDs // Mark Kriegsman, July 2012. // // Compiled size for Arduino/AVR is about 3,968 bytes.#include <FastLED.h…

基于springboot实现入校申报审批系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现入校申报审批系统演示 摘要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装入校申报审批系统软…

【最新鸿蒙应用开发】——Context上下文对象

应用上下文Context 1. 概述 应用上下文&#xff08;Context&#xff09;是应用程序的全局信息的接口。它是一个抽象类&#xff0c;提供了访问应用程序环境的方法和资源的方法。应用上下文可以用于获取应用程序的资源、启动Ability、发送广播等。每个应用程序都有一个应用上下…

【机器学习】机器学习赋能医疗健康:从诊断到治疗的智能化革命

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀目录 &#x1f4d2;1. 引言&#x1f4d9;2. 机器学习在疾病诊断中的应用&#x1f9e9;医学影像分析&#xff1a;从X光到3D成像带代码&#x1…

NDS域名解析服务

3.1BIND域名服务基础 3.1.1 DNS系统的作用及类型 正向解析&#xff1a;根据域名查IP&#xff0c;即将指定的域名解析为相对应的IP地址。 反向解析&#xff1a;根据IP地址查域名&#xff0c;即将指定的IP地址解析为相对应的域名。 每一台DNS服务器都只负责管理一个有限范围内…

UltraISO 未找到虚拟光驱

VMWare Win7 虚拟机用 UltraISO 加载镜像时&#xff0c;提示“未找到虚拟光驱”&#xff1f; 1. 安装签名更新程序 https://www.catalog.update.microsoft.com/Search.aspx?qkb4474419 https://blog.csdn.net/m0_52072919/article/details/118895862 2. 打开 CMD, 进入…

C++面试准备

变量作用&#xff1a;给一段指定的内存空间起名&#xff0c;方便操作这段内存。 常量&#xff1a;用于记录程序中不可更改的数据。 #include <iostream> using namespace std;#define DAY 7 int main() {cout << "一周有" << DAY << "…

【Linux之·软件更新源】

系列文章目录 文章目录 前言一、 ARM架构二、x86架构总结 前言 一、 ARM架构 armv7l&#xff08; Ubuntu 14.04.4 LTS&#xff09; deb http://ports.ubuntu.com/ubuntu-ports/ trusty main restricted universe multiverse deb http://ports.ubuntu.com/ubuntu-ports/ trust…

路由器怎么设置局域网?

局域网&#xff08;Local Area Network&#xff0c;LAN&#xff09;是指在一个相对较小的地理范围内&#xff0c;如家庭、办公室或学校等&#xff0c;通过路由器等设备连接起来的计算机网络。设置局域网可以方便地实现内部资源共享和信息交流。本文将介绍如何设置局域网以及一个…

maven 显式依赖包包含隐式依赖包,引起依赖包冲突

问题&#xff1a;FlinkCDC 3.0.1 代码 maven依赖包冲突 什么是依赖冲突 依赖冲突是指项目依赖的某一个jar包&#xff0c;有多个不同的版本&#xff0c;因而造成类包版本冲突 依赖冲突的原因 依赖冲突很经常是类包之间的间接依赖引起的。每个显式声明的类包都会依赖于一些其它…

Redis缓存(笔记三:Redis6新数据类型)

目录 1. 介绍 2. Bitmaps&#xff08;可以称为字符串&#xff0c;专门进行位操作的字符串&#xff09; 2.1 概念 2.2 setbit&#xff08;设置Bitmaps中某个偏移量的值&#xff09; 2.3 getbit&#xff08;获取Bitmaps中某个偏移量的值&#xff09; 2.4 bitcount&#xff…

Java I/O操作

引言 在Java编程中&#xff0c;输入和输出&#xff08;I/O&#xff09;操作是必不可少的部分。Java I/O通过一系列流&#xff08;Stream&#xff09;类和方法&#xff0c;支持文件操作、控制台输入输出、网络I/O等多种I/O操作。本文将详细介绍Java I/O的基础概念、文件操作、字…

vue实现类似微信按住发送语音给后端

一、需求是点击发送按钮说话获取语音文件发送给后台、鼠标移除即发送,限制时长30s 代码如下 <ttemplete><div class="bottom"><el-button type="primary" size="small" @mousedown.native="startRecord" @mouseup.n…

第二十七章 使用 MTOM 进行附件

文章目录 第二十七章 使用 MTOM 进行附件附件和 SOAP 消息打包具有全部内联部分的 SOAP 消息&#xff08;默认&#xff09; 第二十七章 使用 MTOM 进行附件 可以在 SOAP 请求和响应消息中包含附件。首选方法是使用 IRIS 数据平台对 MTOM&#xff08;消息传输优化机制&#xff…

FPGA专项课程即将开课,颁发AMD官方证书

社区成立以来&#xff0c;一直致力于为广大工程师提供优质的技术培训和资源&#xff0c;得到了众多用户的喜爱与支持。为了满足用户需求&#xff0c;我们特别推出了“基于Vitis HLS的高层次综合及图像处理开发”课程。 本次课程旨在帮助企业工程师掌握前沿的FPGA技术&#xff…

携程任我行礼品卡怎么用?

前两天我用积分兑了张携程卡&#xff0c;但是最近有没有假期&#xff0c;这张携程卡又不知道咋用 最后朋友告诉我可以在收卡云上转让&#xff0c; 去收卡云看了一眼&#xff0c;携程卡现在99.1折&#xff0c;果断出了&#xff0c;到账速度好快啊

Java多线程编程与并发处理

引言 在现代编程中&#xff0c;多线程和并发处理是提高程序运行效率和资源利用率的重要方法。Java提供了丰富的多线程编程支持&#xff0c;包括线程的创建与生命周期管理、线程同步与锁机制、并发库和高级并发工具等。本文将详细介绍这些内容&#xff0c;并通过表格进行总结和…

MySQL----主键、唯一、普通索引的创建与删除

创建索引 CREATE INDEX index_name ON table_name (column1 [ASC|DESC], column2 [ASC|DESC], ...);CREATE INDEX: 用于创建普通索引的关键字。index_name: 指定要创建的索引的名称。索引名称在表中必须是唯一的。table_name: 指定要在哪个表上创建索引。(column1, column2, ……

IntelliJ IDEA 用maven创建web项目

前言 已经安装并配置好Tomcat。具体步骤&#xff1a;Tomcat安装及环境变量配置(一看就会)-CSDN博客​编辑https://blog.csdn.net/longyongyyds/article/details/135825647 具体步骤 1.新建一个maven项目 2&#xff0c;配置好tomcat服务器 3.运行测试一下 maven教程&#xf…

前端面试题(四)|求职季面试分享|答案版

面试形式&#xff1a;线上面试&#xff1a;&#xff08;一面&#xff1a;电话&#xff09;&#xff1a;时长10分钟 面试评价&#xff1a;面试官介绍公司业务面试者倾听介绍 面试官&#xff1a;技术人员 面试官的提问大纲&#xff1a;本公司招聘要求 面试官提问&#xff08;面试…