15天大厂真题带刷 - ZT20【模板】静态矩阵和 | Go

【模板】静态矩阵和(二维前缀和)

https://www.nowcoder.com/practice/111cdd09f7c442f696e8127d08ece90f

题意

给出n行m列的矩阵,每次查询求左上角为 (x1,y1) 、右下角为 (x2,y2) 的子矩阵的元素之和

思路

二维前缀和维护

Go代码

package main

import (
    "fmt"
)

func main() {
    var n,m,q,x1,y1,x2,y2 int 
    fmt.Scan(&n,&m,&q)
    a := make([][]int,n+1)
    sum := make([][]int,n+1)
    for i := 0 ; i <= n ; i ++ {
        sum[i] = make([]int, m+1)
    }
    for i := 1; i <= n; i ++ {
        a[i] = make([]int, m+1)
        for j := 1; j <= m; j ++ {
            fmt.Scan(&a[i][j])
            sum[i][j] = sum[i][j-1] + sum[i-1][j] - sum[i-1][j-1] + a[i][j];
        }
    }
    for ; q> 0; q -- {
        fmt.Scan(&x1,&y1,&x2,&y2)
        fmt.Println(sum[x2][y2] - sum[x1-1][y2] - sum[x2][y1-1] + sum[x1-1][y1-1])
    }
}

15天大厂真题带刷Go题解 文章被收录于专栏

15天大厂真题带刷Golang题解

全部评论

相关推荐

04-27 08:59
常州大学 Java
韵不凡:软件开发的工作需要博士吗?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务