] 在上面的示例中有 3 个独立的岛屿:一个位于左上角,一个位于中部,一个位于右下角。因此,必须遍历整个网格以找到所有的岛屿。 DFS 需要从每个可能的起点出发 当你遍历到某个位置 (i, j) 并且发现它是陆地(1),这意味着它可能是岛屿的一部分。于是你需要调用 DFS 来探索与这个位置相连的所有陆地单元格,以...
解法一:DFS 我们先定义一个dfs函数来递归地探索和计算每一个岛屿的面积。当我们遇到值为1的单元格时,我们将其标记为已访问(将其值设置为0),然后递归地对其四周的单元格执行相同的操作。这样可以确保我们不会重复计算同一个岛屿的面积。 最外层的循环遍历整个网格,当找到一个未被访问的岛屿单元格(值为1)时,就...
Max Area of Island: https://leetcode.cn/problems/max-area-of-island/ 岛屿的最大面积: https://leetcode.cn/problems/max-area-of-island/ LeetCode 日更第182天,感谢阅读至此的你 欢迎点赞、收藏鼓励支持小满
一个 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在水平或者竖直方向上相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。 找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为 0 。) 解答: 递归计算i,j扩散出去的岛屿面积area computeArea(grid, vi...
链接:https://leetcode-cn.com/problems/max-area-of-island 翻译一下题目,就是在二维矩阵中寻找相邻皆为1的最大面积。注意这里的相邻指的是row索引差值为1或是column索引差值为1。 笔者从最朴素的想法开始,双重循环遍历整个矩阵,向右向下寻找,如果遇到相邻的陆地就加入,从而在O(n)的时间内计算出结果。但是仔细...
forjinrange(len(grid[0])): ifgrid[i][j]==1: # 这一步取最大值,不然输出的是每个岛屿的数量 res=self.help(i,j,grid) print("res: ",res) resMax=max(res,resMax) returnresMax defhelp(self,i,j,grid): x_directs=[0,1,0,-1] ...
leetcode-695.png 这一题要计算最大岛屿的面积,其实跟前面的思路一样,在dfs中来累计面积,只不过要每次都保存一个岛屿的面积,然后跟当前记录的最大的岛屿面积比较就行了 DFS varmaxAreaOfIsland=function(grid){letmaxArea=0letrow=grid.lengthletcol=grid[0].lengthvardfs=function(i,j){if(i<0||i>=row...
【LeetCode】200. 岛屿数量 & 695. 岛屿的最大面积(高频题!!!经典 DFS 和 BFS 高频题 商汤、字节面试题) 一、岛屿数量 1.1. 题目描述 给你一个由 ‘1’(陆地)和‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向或竖直方向上相邻的陆地连接形成。此外...
力扣(LeetCode)每日一题 695.岛屿的最大面积, 视频播放量 15、弹幕量 0、点赞数 0、投硬币枚数 0、收藏人数 0、转发人数 0, 视频作者 算法之狐, 作者简介 Algorithm Fox,相关视频:足模日常,现在是考完研的幻想时间,政治主观题,就是抄材料(25版),当你考研复试在本
Given a non-empty 2D array grid of 0's and 1's, an island is a group of 1's (representing land) connected 4-directionally (horizontal or vertical.) You may assume all four edges of the grid are surrounded by water. Find the maximum area of an island in the given 2D array. (If...