1+ """
2+ # MAXIMAL SQUARE
3+
4+ Given an m x n binary matrix filled with 0's and 1's, find the largest square containing only 1's and return its area.
5+
6+
7+
8+ Example 1:
9+
10+
11+ Input: matrix = [["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1","0","0","1","0"]]
12+ Output: 4
13+ Example 2:
14+
15+
16+ Input: matrix = [["0","1"],["1","0"]]
17+ Output: 1
18+ Example 3:
19+
20+ Input: matrix = [["0"]]
21+ Output: 0
22+
23+
24+ Constraints:
25+
26+ m == matrix.length
27+ n == matrix[i].length
28+ 1 <= m, n <= 300
29+ matrix[i][j] is '0' or '1'.
30+ """
31+ 32+ class Solution :
33+ def maximalSquare (self , matrix : List [List [str ]]) -> int :
34+ 35+ m = len (matrix )
36+ n = len (matrix [0 ])
37+ table = [[0 for _ in range (n )] for _ in range (m )]
38+ maximum = 0
39+ 40+ for i in range (m ):
41+ table [i ][0 ] = int (matrix [i ][0 ])
42+ maximum = max (maximum , table [i ][0 ])
43+ 44+ for i in range (n ):
45+ table [0 ][i ] = int (matrix [0 ][i ])
46+ maximum = max (maximum , table [0 ][i ])
47+ 48+ for i in range (1 , m ):
49+ for j in range (1 , n ):
50+ if matrix [i ][j ] == '0' :
51+ continue
52+ table [i ][j ] = min (table [i - 1 ][j ], table [i ][j - 1 ], table [i - 1 ][j - 1 ]) + 1
53+ maximum = max (maximum , table [i ][j ])
54+ 55+ for row in table :
56+ print (row )
57+ return maximum ** 2
58+
0 commit comments