|
@@ -0,0 +1,26 @@
|
|
|
+func maximalSquare(matrix [][]byte) int {
|
|
|
+ n := len(matrix)
|
|
|
+ if n == 0 {
|
|
|
+ return 0
|
|
|
+ }
|
|
|
+ m := len(matrix[0])
|
|
|
+ if m == 0 {
|
|
|
+ return 0
|
|
|
+ }
|
|
|
+ hei := make([][]int, n) // Init the accumulative height matrix
|
|
|
+ hei[0] = make([]int, m)
|
|
|
+ for i := range matrix[0] {
|
|
|
+ hei[0][i] = int(matrix[0][i]-'0')
|
|
|
+ }
|
|
|
+ for i := 1; i < m; i++ {
|
|
|
+ hei[i] = make([]int, m)
|
|
|
+ for j := range matrix[i] {
|
|
|
+ if matrix[i][j] == '0' {
|
|
|
+ hei[i][j] = 0
|
|
|
+ } else {
|
|
|
+ hei[i][j] = hei[i-1][j] + 1
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return 0
|
|
|
+}
|