力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
暴力
双层for循环,遍历子矩阵。文章来源:https://www.toymoban.com/news/detail-702381.html
前缀和算法:文章来源地址https://www.toymoban.com/news/detail-702381.html
class NumMatrix {
private int sum[][];
private int matrix[][];
public NumMatrix(int[][] matrix) {
this.matrix=matrix;
int rows=matrix.length+1;
int cols=matrix[0].length+1;
this.sum=new int[rows][cols];
init(cols,rows);
}
public void init(int cols,int rows)
{
for(int i=1;i<rows;i++)
{
for(int j=1;j<cols;j++)
{
this.sum[i][j]=this.sum[i-1][j]+this.sum[i][j-1]-this.sum[i-1][j-1]+this.matrix[i-1][j-1];
}
}
}
public int sumRegion(int row1, int col1, int row2, int col2) {
return this.sum[row2+1][col2+1]-this.sum[row2+1][col1]-this.sum[row1][col2+1]+this.sum[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);
*/
到了这里,关于二维数组前缀和(JAVA)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!