| 1234567891011121314151617181920212223242526272829303132333435 |
- package main
- import "fmt"
- func countSubmatrices(grid [][]int, k int) int {
- m := len(grid)
- n := len(grid[0])
- res := 0
- perfix := make([][]int, m)
- for i := range perfix {
- perfix[i] = make([]int, n)
- }
- for i := 0; i < m; i++ {
- for j := 0; j < n; j++ {
- if i == 0 && j == 0 {
- perfix[i][j] = grid[0][0]
- } else if i == 0 {
- perfix[i][j] = perfix[i][j-1] + grid[i][j]
- } else if j == 0 {
- perfix[i][j] = perfix[i-1][j] + grid[i][j]
- } else {
- perfix[i][j] = perfix[i-1][j] + perfix[i][j-1] - perfix[i-1][j-1] + grid[i][j]
- }
- if perfix[i][j] <= k {
- res++
- }
- }
- }
- return res
- }
- func main() {
- fmt.Println(countSubmatrices([][]int{{7, 2, 9}, {1, 5, 0}, {2, 6, 6}}, 18))
- }
|