| 46 | } |
| 47 | |
| 48 | private static int computeSum(int[][] sumMatrix, int i1, int i2, |
| 49 | int j1, int j2) { |
| 50 | if (i1 == 0 && j1 == 0) { // starts at row 0, column 0 |
| 51 | return sumMatrix[i2][j2]; |
| 52 | } else if (i1 == 0) { // starts at row 0 |
| 53 | return sumMatrix[i2][j2] - sumMatrix[i2][j1 - 1]; |
| 54 | } else if (j1 == 0) { // starts at column 0 |
| 55 | return sumMatrix[i2][j2] - sumMatrix[i1 - 1][j2]; |
| 56 | } else { |
| 57 | return sumMatrix[i2][j2] - sumMatrix[i2][j1 - 1] - sumMatrix[i1 - 1][j2] + sumMatrix[i1 - 1][j1 - 1]; |
| 58 | } |
| 59 | } |
| 60 | |
| 61 | public static void main(String[] args) { |
| 62 | int[][] matrix = AssortedMethods.randomMatrix(10, 10, -5, 5); |