#GT008. 最大人工岛

最大人工岛

说明

给你一个大小为 n x n 二进制矩阵 grid 。最多 只能将一格 0 变成 1 。

返回执行此操作后,grid 中最大的岛屿面积是多少?

屿 由一组上、下、左、右四个方向相连的 1 形成

如图将黄色格子变为陆地后可以得到最大的岛屿面积


下面举3个例子:

【示例 1】 

输入: grid = [[1, 0], [0, 1]] 

输出: 3 

解释: 将一格0变成1,最终连通两个小岛得到面积为 3 的岛屿。

【示例 2】

输入: grid = [[1, 1], [1, 0]]

输出: 4

解释: 将一格0变成1,岛屿的面积扩大为 4。 

【示例 3】

输入: grid = [[1, 1], [1, 1]] 

输出: 4 

解释: 没有0可以让我们变成1,面积依然为 4。

输入格式

第一行一个整数 n 

接下来是一个 n x n 的二进制矩阵 grid


输出格式

一个整数,即人工填海之后最大的岛屿面积。

样例

2
1 0
0 1
3

提示


数据范围:

n == grid.length

n == grid[i].length

1 <= n <= 500

grid[i][j] 为 0 或 1