class Solution {
public:
int numDistinctIslands(vector<vector<int>>& grid) {
}
};
694. 不同岛屿的数量
给定一个非空 01 二维数组表示的网格,一个岛屿由四连通(上、下、左、右四个方向)的 1
组成,你可以认为网格的四周被海水包围。
请你计算这个网格中共有多少个形状不同的岛屿。两个岛屿被认为是相同的,当且仅当一个岛屿可以通过平移变换(不可以旋转、翻转)和另一个岛屿重合。
示例 1:
输入: grid = [[1,1,0,0,0],[1,1,0,0,0],[0,0,0,1,1],[0,0,0,1,1]] 输出:1
示例 2:
输入: grid = [[1,1,0,1,1],[1,0,0,0,0],[0,0,0,0,1],[1,1,0,1,1]] 输出: 3
提示:
m == grid.length
n == grid[i].length
1 <= m, n <= 50
grid[i][j]
仅包含 0
或 1
原站题解