Skip to content

Commit fe352cf

Browse files
committed
Update 0695. 岛屿的最大面积.md
1 parent 6d6f019 commit fe352cf

File tree

1 file changed

+36
-4
lines changed

1 file changed

+36
-4
lines changed

Solutions/0695. 岛屿的最大面积.md

Lines changed: 36 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,43 @@
55

66
## 题目大意
77

8-
给定一个只包含 `0``1` 元素的二维数组,`1` 代表岛屿,`0` 代表水。一座岛的面积就是上下左右相邻的 `1` 所组成的连通块的数目。
8+
**描述**给定一个只包含 `0``1` 元素的二维数组,`1` 代表岛屿,`0` 代表水。一座岛的面积就是上下左右相邻的 `1` 所组成的连通块的数目。
99

10-
要求:计算出最大的岛屿面积。
10+
**要求**:计算出最大的岛屿面积。
11+
12+
**说明**
13+
14+
- $m == grid.length$。
15+
- $n == grid[i].length$。
16+
- $1 \le m, n \le 50$。
17+
- $grid[i][j]$ 为 `0``1`
18+
19+
**示例**
20+
21+
![](https://assets.leetcode.com/uploads/2021/05/01/maxarea1-grid.jpg)
22+
23+
```Python
24+
输入: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]]
25+
输出:6
26+
解释:答案不应该是 11 ,因为岛屿只能包含水平或垂直这四个方向上的 1
27+
28+
29+
输入:grid = [[0,0,0,0,0,0,0,0]]
30+
输出:0
31+
```
1132

1233
## 解题思路
1334

14-
使用深度优先搜索方法。遍历二维数组的每一个元素,对于每个值为 `1` 的元素,记下其面积。然后将该值置为 `0`(防止二次重复计算),再递归其上下左右四个位置,并将深度优先搜索搜到的值为 `1` 的元素个数,进行累积统计。
35+
### 思路 1:深度优先搜索
1536

16-
## 代码
37+
1. 遍历二维数组的每一个元素,对于每个值为 `1` 的元素:
38+
1. 将该位置上的值置为 `0`(防止二次重复计算)。
39+
2. 递归搜索该位置上下左右四个位置,并统计搜到值为 `1` 的元素个数。
40+
3. 返回值为 `1` 的元素个数(即为该岛的面积)。
41+
2. 维护并更新最大的岛面积。
42+
3. 返回最大的到面积。
43+
44+
### 思路 1:代码
1745

1846
```Python
1947
class Solution:
@@ -39,3 +67,7 @@ class Solution:
3967
return ans
4068
```
4169

70+
### 思路 1:复杂度分析
71+
72+
- **时间复杂度**:$O(n \times m)$,其中 $m$ 和 $n$ 分别为行数和列数。
73+
- **空间复杂度**:$O(n \times m)$。

0 commit comments

Comments
 (0)