news 2026/6/10 1:11:41

代码随想录 695.岛屿的最大面积

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
代码随想录 695.岛屿的最大面积

思路:

1.注意题目中的每座岛屿只能由水平方向和竖直方向相邻的陆地连接形成。

2.这题也是bfs、dfs的基础题目,就是搜索每个岛屿上“1”的数量,然后取一个最大的。

一、DFS:

附代码:

class Solution { public int maxAreaOfIsland(int[][] grid) { int res = 0; for(int i = 0;i < grid.length;i++){ for(int j = 0;j < grid[i].length;j++){ if(grid[i][j] == 1){ //发现新岛屿 res = Math.max(res,dfs(grid,i,j)); //将整个岛屿标记为已访问,统计岛屿面积并求最大岛屿面积 } } } return res; } private int dfs(int[][] grid,int i,int j){ if(i < 0 || j < 0 || i >= grid.length || j >= grid[i].length || grid[i][j] == 0){ return 0; } //当前节点 int count = 1; //将当前岛屿标记为已访问(沉没岛屿,改为0) grid[i][j] = 0; //向四个方向递归探索 count += dfs(grid,i - 1,j); count += dfs(grid,i + 1,j); count += dfs(grid,i,j + 1); count += dfs(grid,i,j - 1); return count; } }

二、BFS:

附代码:

class Solution { public int maxAreaOfIsland(int[][] grid) { int res = 0; for(int i = 0;i < grid.length;i++){ for(int j = 0;j < grid[0].length;j++){ if(grid[i][j] == 1){ res = Math.max(res,bfs(grid,i,j)); } } } return res; } private int bfs(int[][] grid,int i,int j){ int[] dx = {1,-1,0,0}; int[] dy = {0,0,1,-1}; LinkedList<int[]> queue = new LinkedList<>(); queue.add(new int[] {i,j}); grid[i][j] = 0; int count = 1; while(!queue.isEmpty()){ int[] cur = queue.remove(); for(int index = 0;index < 4;index++){ int nx = cur[0] + dx[index],ny = cur[1] + dy[index]; if(nx >= 0 && nx < grid.length && ny >= 0 && ny < grid[0].length && grid[nx][ny] == 1){ grid[nx][ny] = 0; count += 1; queue.add(new int[] {nx,ny}); } } } return count; } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 0:29:44

Gitfiti技术深度解析:一键生成GitHub像素艺术的提交操作方法

Gitfiti技术深度解析&#xff1a;一键生成GitHub像素艺术的提交操作方法 【免费下载链接】gitfiti abusing github commit history for the lulz 项目地址: https://gitcode.com/gh_mirrors/gi/gitfiti 还在羡慕别人GitHub主页上那些炫酷的像素图案吗&#xff1f;Gitfit…

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

Chromebook Linux音频终极修复指南:一键解决声音问题

Chromebook Linux音频终极修复指南&#xff1a;一键解决声音问题 【免费下载链接】chromebook-linux-audio Script to enable audio support on many Chrome devices 项目地址: https://gitcode.com/gh_mirrors/ch/chromebook-linux-audio 你是否在Chromebook上安装Linu…

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

RPALite:企业级桌面自动化与RPA编程解决方案

RPALite&#xff1a;企业级桌面自动化与RPA编程解决方案 【免费下载链接】RPALite 用于Python和Robot Framework的开源RPA编程库 项目地址: https://gitcode.com/jieliu2000/rpalite RPALite是一款强大的开源RPA编程库&#xff0c;专为技术爱好者和企业用户设计&#xf…

作者头像 李华
网站建设 2026/6/10 9:09:03

Sossoldi终极部署指南:6大平台一键发布财富管理神器

Sossoldi终极部署指南&#xff1a;6大平台一键发布财富管理神器 【免费下载链接】sossoldi "Sossoldi" is a wealth management / personal finance / Net Worth tracking app, made with Flutter. 项目地址: https://gitcode.com/GitHub_Trending/so/sossoldi …

作者头像 李华
网站建设 2026/6/10 9:05:14

Vanta.js终极指南:轻松创建惊艳3D动画背景的完整教程

Vanta.js终极指南&#xff1a;轻松创建惊艳3D动画背景的完整教程 【免费下载链接】vanta Animated 3D backgrounds for your website 项目地址: https://gitcode.com/gh_mirrors/va/vanta Vanta.js是一个功能强大的JavaScript库&#xff0c;专门用于为网站添加令人惊叹的…

作者头像 李华