11、矩阵运算
已知一个大小为 n x m 的矩阵 matrixA,计算出一个和矩阵 matrixA 具有相同维度的矩阵 matrixB(即矩阵 matrixB 的大小也为 n x m),而矩阵 matrixB 中的每个元素 matrixB[i, j] 都对应了矩阵 matrixA 中元素 matrixA[i, j] 左上方(包含 matrixA[i, j] )的所有元素之和。
public class MatrixCal {
public static void main(String[] args) {
int[][] matrixA = {
{
3,7,1},{
2,4,0},{
9,4,2}};
Solution solution = new Solution();
int[][] matrixB = solution.matrixCalF(matrixA);
for (int i = 0; i < matrixA.length; i++) {
for (int j = 0; j < matrixA[0].length; j++) {
System.out.print(matrixB[i][j] + " ");
}
System.out.println();
}
}
static class Solution{
public int[][] matrixCalF(int[][] matrixA) {
if(matrixA == null) {
return null;
}
int NL = matrixA.length;
int MC = matrixA[0].length;
int[][] matrixB = new int[NL][MC];
matrixB[0][0] = matrixA[0][0];
for (int iL = 0; iL < NL; iL++) {
for (int jC = 0; jC < MC; jC++) {
int linCount = 0;
int colCount = 0;
for (int k = 0; k <= jC; k++ ) {
linCount += matrixA[iL][k];
}
for (int l = 0; l <= iL; l++) {
colCount += matrixA[l][jC];
}
if(iL == 0 && jC > 0) {
matrixB[iL][jC] = linCount;
} else if(iL > 0 && jC == 0){
matrixB[iL][jC] = colCount;
} else if(iL > 0 && jC > 0) {
matrixB[iL][jC] = matrixB[iL-1][jC-1] + linCount + colCount - matrixA[iL][jC];
} else {
continue;
}
}