当前位置: 首页 > news >正文

LeetCode-105-岛屿的最大面积

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

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

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

思路:依次遍历每个岛屿,求出每个岛屿的面积,最后得出面积最大的那个岛屿。问题在于如何求出岛屿的面积,用infect函数计算当遍历到数组某一位为1时,说明找到了一个岛屿,用递归的方法即可求出其面积,之后infect会将这个岛屿的每一位都设置为2,避免再次计算这个岛屿。

class Solution {public int maxAreaOfIsland(int[][] grid) {int maxNum =  0;int m = grid.length;int n = grid[0].length;for (int i = 0; i < m; i++){for (int j =0; j < n; j++){if (grid[i][j] == 1){maxNum = Math.max(maxNum, infect(grid, i , j, m, n));}}}return maxNum;}public int infect(int[][] grid, int i, int j, int m, int n){if (i < 0 || i >= m || j < 0 || j >= n || grid[i][j] != 1){return 0;}grid[i][j] = 2;return 1 + infect(grid, i-1, j, m, n)+ infect(grid, i+1, j, m, n)+ infect(grid, i, j-1, m, n)+ infect(grid, i, j+1, m, n);}
}

相关文章:

  • 【Linux杂货铺】进程通信
  • 线性模型--普通最小二乘法
  • JavaFX安装与使用
  • Web开发学习总结
  • 8.什么是HOOK
  • sql查询,直接返回json数组格式
  • 伪css的处理方式
  • [力扣题解] 200. 岛屿数量
  • Java——认识Java
  • 【Vue2入门技能树】:Vue2项目从入门到放弃所遇到的问题汇总
  • 【Docker学习】深入研究命令docker exec
  • SVM兵王问题
  • 摄像头应用测试
  • 牛逼!50.3K Star!一个自动将屏幕截图转换为代码的开源工具
  • 【fastapi+mongodb】使用motor操作mongodb
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 【EOS】Cleos基础
  • angular2 简述
  • Angular6错误 Service: No provider for Renderer2
  • canvas绘制圆角头像
  • Linux后台研发超实用命令总结
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • mysql常用命令汇总
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • ViewService——一种保证客户端与服务端同步的方法
  • Vim Clutch | 面向脚踏板编程……
  • web标准化(下)
  • 测试开发系类之接口自动化测试
  • 分享一份非常强势的Android面试题
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 跨域
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 我建了一个叫Hello World的项目
  • 我是如何设计 Upload 上传组件的
  • 带你开发类似Pokemon Go的AR游戏
  • ​必胜客礼品卡回收多少钱,回收平台哪家好
  • ​虚拟化系列介绍(十)
  • # include “ “ 和 # include < >两者的区别
  • $NOIp2018$劝退记
  • (6)添加vue-cookie
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (分布式缓存)Redis哨兵
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (七)Knockout 创建自定义绑定
  • (三)SvelteKit教程:layout 文件
  • (一)utf8mb4_general_ci 和 utf8mb4_unicode_ci 适用排序和比较规则场景
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • .net core控制台应用程序初识
  • .NET delegate 委托 、 Event 事件,接口回调
  • .NET/C#⾯试题汇总系列:集合、异常、泛型、LINQ、委托、EF!(完整版)
  • /bin/rm: 参数列表过长"的解决办法