304. 二维区域和检索 - 矩阵不可变 (二维前缀和)
304. 二维区域和检索 - 矩阵不可变 - 力扣(LeetCode)
根据原始数组martix,维护一个a数组作为二维前缀和,然后通过sunRegion函数的公式可以求出左上坐标(row1,col1)右下坐标(row2,col2)的矩阵中 元素的总和
class NumMatrix { private int[][] a; public NumMatrix(int[][] matrix) { int x = matrix.length; int y = matrix[0].length; a = new int[matrix.length+1][matrix[0].length+1]; for(int i=1;i<=x;++i){ for(int j=1;j<=y;++j){ a[i][j] = matrix[i-1][j-1] + a[i-1][j]+a[i][j-1]-a[i-1][j-1]; } } } public int sumRegion(int row1, int col1, int row2, int col2) { return a[row2+1][col2+1] - a[row2+1][col1]-a[row1][col2+1] + a[row1][col1]; } } /** * Your NumMatrix object will be instantiated and called as such: * NumMatrix obj = new NumMatrix(matrix); * int param_1 = obj.sumRegion(row1,col1,row2,col2); */
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!