Dada una matriz bidimensional, calcule la suma de los elementos en su rango sub-rectangular. La esquina superior izquierda de la submatriz es (fila1, col1) y la esquina inferior derecha es (fila2, col2).
En la figura anterior, la esquina superior izquierda de la submatriz (fila1, col1) = (2, 1) y la esquina inferior derecha (fila2, col2) = (4, 3), la suma de los elementos en el sub -rectángulo es 8.
Ejemplo:
Dada la matriz = [
[3, 0, 1, 4, 2],
[5, 6, 3, 2, 1],
[1, 2, 0, 1, 5],
[4, 1, 0, 1, 7 ],
[1, 0, 3, 0, 5]
]
sumRegion (2, 1, 4, 3) -> 8
sumRegion (1, 1, 2, 2) -> 11
sumRegion (1, 2, 2, 4) -> 12
inmediato:
Puede asumir que la matriz es inmutable.
El método sumRegion se llamará varias veces.
Puede asumir que fila1 ≤ fila2 y col1 ≤ col2.
class NumMatrix {
private static int[][] matrix=null;
public NumMatrix(int[][] matrix) {
this.matrix=matrix;
}
public int sumRegion(int row1, int col1, int row2, int col2) {
int sum=0;
for(int i=row1;i<=row2;i++) {
for(int j=col1;j<=col2;j++) {
sum+=matrix[i][j];
}
}
return sum;
}
}