Learn
Practice
Interview
Resources
Newsletter
F
Toggle theme
0
F
0
Toggle menu
Animations
← Back to All Animations
Maximal Square
Bookmark
Brute Force
2D DP
Space-Optimized
Input
Example 1
Example 2
All ones (3x3)
Custom
matrix
=
[["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1","0","0","1","0"]]
grow a square from every 1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
k = -
maxSide = 0
area = -
grow a square from every 1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
k = -
maxSide = 0
area = -
grow a square from every 1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
corner [0][2]
k = 1
maxSide = 1
area = -
grow a square from every 1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1x1 from [1][0]: all 1s
k = 1
maxSide = 1
area = -
grow a square from every 1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
maxSide = 1
k = 1
maxSide = 1
area = -
grow a square from every 1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
2x2 from [1][3]: all 1s
k = 1
maxSide = 2
area = -
grow a square from every 1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
maxSide = 2
k = 1
maxSide = 2
area = -
grow a square from every 1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
corner [2][2]
k = 1
maxSide = 2
area = -
grow a square from every 1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
maxSide = 2
k = 1
maxSide = 2
area = -
grow a square from every 1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
maxSide = 2
k = 1
maxSide = 2
area = -
grow a square from every 1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
2x2 = 4
k = -
maxSide = 2
area = 4
algo
master
.
io
Step:
Find the largest all-1s square by growing one from every 1 in the grid
0 / 67
Input
Example 1
Example 2
All ones (3x3)
Custom
matrix
=
[["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1","0","0","1","0"]]
0 / 67
algo
master
.
io
Step:
Find the largest all-1s square by growing one from every 1 in the grid