Quiz on Prefix Sum for DSA: Question 7

Last Updated :
Discuss
Comments

What would be the output if pass arr[][] = [[10, 20, 30], [5, 10, 20], [2, 4, 6]] to the following code:

C++
int[][] prefixSum2D(int a[R][C]) 
{ 
    int psa[R][C]; 
    psa[0][0] = a[0][0];
    for (int i = 1; i < C; i++) 
        {
            psa[0][i] = psa[0][i - 1] + a[0][i]; 
        }
    for (int i = 1; i < R; i++)
        {
            psa[i][0] = psa[i - 1][0] + a[i][0];
        }
    for (int i = 1; i < R; i++) 
        { 
        for (int j = 1; j < C; j++)
            {   
                psa[i][j] = psa[i - 1][j] + psa[i][j - 1] - psa[i - 1][j - 1] + a[i][j]; 
            }
        } 
    return psa; 
}
C
int[][] prefixSum2D(int a[R][C]) { 
    int psa[R][C]; 
    psa[0][0] = a[0][0];
    
    for (int i = 1; i < C; i++) {
        psa[0][i] = psa[0][i - 1] + a[0][i]; 
    }

    for (int i = 1; i < R; i++) {
        psa[i][0] = psa[i - 1][0] + a[i][0];
    }

    for (int i = 1; i < R; i++) { 
        for (int j = 1; j < C; j++) {   
            psa[i][j] = psa[i - 1][j] + psa[i][j - 1] - psa[i - 1][j - 1] + a[i][j]; 
        }
    }
    return psa; 
}
Java
public static int[][] prefixSum2D(int[][] a) {
    int[][] psa = new int[R][C];
    psa[0][0] = a[0][0];
        
    for (int i = 1; i < C; i++) {
        psa[0][i] = psa[0][i - 1] + a[0][i]; 
    }

    for (int i = 1; i < R; i++) {
        psa[i][0] = psa[i - 1][0] + a[i][0];
        }

        for (int i = 1; i < R; i++) { 
            for (int j = 1; j < C; j++) {   
                psa[i][j] = psa[i - 1][j] + psa[i][j - 1] - psa[i - 1][j - 1] + a[i][j]; 
            }
        }
    }
    return psa; 
}
Python
def prefix_sum_2d(a):
    psa = [[0] * C for _ in range(R)]
    psa[0][0] = a[0][0]

    for i in range(1, C):
        psa[0][i] = psa[0][i - 1] + a[0][i]

    for i in range(1, R):
        psa[i][0] = psa[i - 1][0] + a[i][0]

    for i in range(1, R):
        for j in range(1, C):
            psa[i][j] = psa[i - 1][j] + psa[i][j - 1] - psa[i - 1][j - 1] + a[i][j]
            
    return psa; 
JavaScript
function prefixSum2D(a) {
    let psa = Array.from({ length: R }, () => Array(C).fill(0));
    psa[0][0] = a[0][0];

    for (let i = 1; i < C; i++) {
        psa[0][i] = psa[0][i - 1] + a[0][i];
    }

    for (let i = 1; i < R; i++) {
        psa[i][0] = psa[i - 1][0] + a[i][0];
    }

    for (let i = 1; i < R; i++) {
        for (let j = 1; j < C; j++) {
            psa[i][j] = psa[i - 1][j] + psa[i][j - 1] - psa[i - 1][j - 1] + a[i][j];
        }
    }
    return psa; 
}

[[10, 30, 60],[5, 15, 35],[2, 6, 10]]

[[10, 20, 30], [15, 30, 50], [17, 34, 56]]

[[10, 30, 60], [15, 45, 95], [17, 51, 107]]

None of the above

Tags:
Share your thoughts in the comments