DDSA
Advertisement

2D Difference Array

2D Difference Array.java
Java
import java.util.*;

class Solution {
    public ArrayList<ArrayList<Integer>> applyDiff2D(int[][] mat, int[][] opr) {
        ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>();

        for (int n = 0; n < opr.length; n++) {
            int num = opr[n][0];
            int istart = opr[n][1];
            int jstart = opr[n][2];
            int iend = opr[n][3];
            int jend = opr[n][4];
            for (int i = istart; i <= iend; i++) {
                for (int j = jstart; j <= jend; j++)
                    mat[i][j] += num;
            }
        }
        for (int i = 0; i < mat.length; i++) {
            ArrayList<Integer> ans = new ArrayList<Integer>();
            for (int j = 0; j < mat[0].length; j++)
                ans.add(mat[i][j]);
            res.add(ans);
        }

        return res;
    }
}
Advertisement
Was this solution helpful?