1234567891011121314151617181920212223242526 |
- 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
- }
|