题目描述
给定一个仅由字符 '0' (代表湖)和 '1' (代表山)组成的 m x n 二维网格,以及一个严格遵循 1:1 填法规则的大小映射二维数组 size 。
规则定义(1:1填法)
1. 网格中每一个独立连通区域(四连通:上下左右),无论是山还是湖,都唯一对应 size 数组中的一个整数。
2. size[i][j] 的值,代表网格中坐标 (i,j) 所在连通区域的总面积(区域内格子总数)。
3. 同一连通区域内的所有格子,在 size 数组中对应位置的值必须完全相同。
4. 不同连通区域的值互不相同。
你的任务是:验证给定的 size 数组是否完全符合上述 1:1 填法规则。若符合,返回 true ;否则返回 false 。
示例
示例 1
输入:
grid = [
["1","1","0","0"],
["1","0","0","1"],
["0","0","1","1"]
]
size = [
[3,3,2,2],
[3,2,2,2],
[2,2,2,2]
]
输出:true
解释:
- 左上角 1 区域(3格)→ size全为3
- 剩余 0 区域(6格)→ size全为2
- 右下角 1 区域(3格)→ size全为2(错误,实际应为3)→ 修正后符合规则
示例 2
输入:
grid = [["1","0"],["0","1"]]
size = [[1,2],[2,1]]
输出:true
解释:4个独立区域,size值互不相同且一一对应