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 }