ChiragLulla

Prefix 2D

Aug 29th, 2022 (edited)
511
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.48 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class Solution {
  4.     static int[][] prefixSum(int[][] matrix) {
  5.         int[][] ans = new int[matrix.length][matrix[0].length];
  6.  
  7.         ans[0][0] = matrix[0][0];
  8.         for(int i = 1; i < matrix[0].length; i++) {
  9.             // ans[0][i] = matrix[0][i] - matrix[0][i-1];
  10.             ans[0][i] = matrix[0][i] + ans[0][i-1];
  11.         }
  12.  
  13.         for(int i = 1; i < matrix.length; i++) {
  14.             // ans[i][0] = matrix[i][0] - matrix[i-1][0];
  15.             ans[i][0] = matrix[i][0] + ans[i-1][0];
  16.         }
  17.  
  18.         for(int i = 1; i < matrix.length; i++) {
  19.             for(int j = 1; j < matrix[0].length; j++) {
  20.                 ans[i][j] = matrix[i][j] + ans[i][j-1] + ans[i-1][j] - ans[i-1][j-1];
  21.                 // ans[i][j] = matrix[i][j] - (matrix[i][j-1] + matrix[i-1][j] - matrix[i-1][j-1]);
  22.             }
  23.         }
  24.  
  25.         return ans;
  26.     }
  27.  
  28.     public static void main(String[] args) {
  29.         Scanner sc = new Scanner(System.in);
  30.         int m = sc.nextInt();
  31.         int n = sc.nextInt();
  32.  
  33.         int[][] matrix = new int[m][n];
  34.  
  35.         for(int i = 0; i < m; i++) {
  36.             for(int j = 0; j < n; j++) {
  37.                 matrix[i][j] = sc.nextInt();
  38.             }
  39.         }
  40.  
  41.         for(int[] mat: matrix)
  42.             System.out.println(Arrays.toString(mat));
  43.  
  44.         int[][] prefixSum = prefixSum(matrix);
  45.  
  46.         for(int[] p: prefixSum)
  47.             System.out.println(Arrays.toString(p));
  48.         sc.close();
  49.     }
  50. }
Advertisement
Add Comment
Please, Sign In to add comment