[Java] 304. ¡El área bidimensional y la matriz inmutable de recuperación-aprenden variables estáticas! ! !

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;
    }
 }

Supongo que te gusta

Origin blog.csdn.net/qq_44461217/article/details/114286965
Recomendado
Clasificación