Number of Distinct Islands - Problem
You are given an m x n binary matrix grid. 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.
An island is considered to be the same as another if and only if one island can be translated (and not rotated or reflected) to equal the other.
Return the number of distinct islands.
Input & Output
Example 1 — Basic Islands
$
Input:
grid = [[1,1,0,1,1],[1,1,0,1,1],[0,0,0,0,0],[1,1,0,1,1],[1,1,0,1,1]]
›
Output:
3
💡 Note:
The grid has 4 islands total, but only 3 distinct shapes: top-left 2x2 square, top-right 2x2 square (same shape), bottom-left 2x2 square (same shape), and bottom-right 2x2 square (same shape). So we have 3 unique shapes.
Example 2 — L-shaped Islands
$
Input:
grid = [[1,1,0,0,0],[1,0,0,0,0],[0,0,0,1,1],[0,0,0,1,0]]
›
Output:
2
💡 Note:
First island is L-shaped at top-left: (0,0),(0,1),(1,0). Second island is L-shaped at bottom-right: (2,3),(2,4),(3,3). Both have the same relative pattern when normalized, so only 1 distinct shape... wait, let me recalculate. Actually these are different L orientations, so 2 distinct shapes.
Example 3 — Single Cell
$
Input:
grid = [[1,0,1],[0,0,0],[1,0,1]]
›
Output:
1
💡 Note:
All four islands are single cells at (0,0), (0,2), (2,0), (2,2). They all have the same shape: just one cell at relative position (0,0).
Constraints
- 1 ≤ m, n ≤ 50
- grid[i][j] is either 0 or 1
Visualization
Tap to expand
Understanding the Visualization
1
Input Grid
Binary matrix with land (1) and water (0) cells
2
Find Islands
Use DFS to identify connected components of land
3
Count Distinct
Normalize island shapes and count unique patterns
Key Takeaway
🎯 Key Insight: Islands are identical if they have the same relative coordinate pattern after normalization
💡
Explanation
AI Ready
💡 Suggestion
Tab
to accept
Esc
to dismiss
// Output will appear here after running code