Bird
Raised Fist0
DSA Javaprogramming~20 mins

Minimum Path Sum in Grid in DSA Java - Practice Problems & Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Minimum Path Sum Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of Minimum Path Sum Calculation
What is the output of the following Java code that calculates the minimum path sum in a 3x3 grid?
DSA Java
public class Solution {
    public static int minPathSum(int[][] grid) {
        int m = grid.length;
        int n = grid[0].length;
        int[][] dp = new int[m][n];
        dp[0][0] = grid[0][0];
        for (int i = 1; i < m; i++) {
            dp[i][0] = dp[i-1][0] + grid[i][0];
        }
        for (int j = 1; j < n; j++) {
            dp[0][j] = dp[0][j-1] + grid[0][j];
        }
        for (int i = 1; i < m; i++) {
            for (int j = 1; j < n; j++) {
                dp[i][j] = Math.min(dp[i-1][j], dp[i][j-1]) + grid[i][j];
            }
        }
        return dp[m-1][n-1];
    }

    public static void main(String[] args) {
        int[][] grid = {
            {1, 3, 1},
            {1, 5, 1},
            {4, 2, 1}
        };
        System.out.println(minPathSum(grid));
    }
}
A7
B8
C9
D10
Attempts:
2 left
💡 Hint
Trace the path from top-left to bottom-right choosing the minimum sum at each step.
🧠 Conceptual
intermediate
1:00remaining
Understanding Movement Constraints in Minimum Path Sum
In the Minimum Path Sum problem, which movements are allowed when moving from the top-left corner to the bottom-right corner of the grid?
AOnly diagonal moves are allowed.
BMoves can be in any direction including diagonals.
CMoves can be up, down, left, or right.
DOnly moves down or right are allowed.
Attempts:
2 left
💡 Hint
Think about the problem constraints that simplify the path choices.
🔧 Debug
advanced
2:00remaining
Identify the Error in Minimum Path Sum Code
What error will the following Java code produce when run on a non-empty grid?
DSA Java
public class Solution {
    public static int minPathSum(int[][] grid) {
        int m = grid.length;
        int n = grid[0].length;
        int[][] dp = new int[m][n];
        dp[0][0] = grid[0][0];
        for (int i = 1; i <= m; i++) {
            dp[i][0] = dp[i-1][0] + grid[i][0];
        }
        for (int j = 1; j <= n; j++) {
            dp[0][j] = dp[0][j-1] + grid[0][j];
        }
        for (int i = 1; i < m; i++) {
            for (int j = 1; j < n; j++) {
                dp[i][j] = Math.min(dp[i-1][j], dp[i][j-1]) + grid[i][j];
            }
        }
        return dp[m-1][n-1];
    }
}
ANullPointerException
BArrayIndexOutOfBoundsException
CNo error, returns correct result
DArithmeticException
Attempts:
2 left
💡 Hint
Check the loop conditions for accessing array indices.
🚀 Application
advanced
2:00remaining
Minimum Path Sum with Obstacles
Given a grid where some cells are blocked (represented by -1), how would you modify the minimum path sum algorithm to avoid blocked cells?
ATreat blocked cells as having infinite cost and skip them in calculations.
BIgnore blocked cells and calculate minimum path normally.
CReplace blocked cells with zero and proceed.
DOnly consider paths that move diagonally to avoid blocked cells.
Attempts:
2 left
💡 Hint
Think about how to represent unreachable cells in the dynamic programming table.
❓ Predict Output
expert
3:00remaining
Output of Minimum Path Sum with Large Grid
What is the output of the following Java code that calculates the minimum path sum for a 4x4 grid?
DSA Java
public class Solution {
    public static int minPathSum(int[][] grid) {
        int m = grid.length;
        int n = grid[0].length;
        int[][] dp = new int[m][n];
        dp[0][0] = grid[0][0];
        for (int i = 1; i < m; i++) {
            dp[i][0] = dp[i-1][0] + grid[i][0];
        }
        for (int j = 1; j < n; j++) {
            dp[0][j] = dp[0][j-1] + grid[0][j];
        }
        for (int i = 1; i < m; i++) {
            for (int j = 1; j < n; j++) {
                dp[i][j] = Math.min(dp[i-1][j], dp[i][j-1]) + grid[i][j];
            }
        }
        return dp[m-1][n-1];
    }

    public static void main(String[] args) {
        int[][] grid = {
            {1, 2, 5, 2},
            {3, 2, 1, 4},
            {4, 3, 2, 1},
            {5, 6, 1, 1}
        };
        System.out.println(minPathSum(grid));
    }
}
A12
B13
C14
D15
Attempts:
2 left
💡 Hint
Calculate the minimum sum path step by step using the dp table.

Practice

(1/5)
1. What does the "Minimum Path Sum in Grid" problem ask you to find?
Given a grid of numbers, find the path from top-left to bottom-right with the smallest sum.
easy
A. The path with the smallest sum of numbers from top-left to bottom-right
B. The path with the largest sum of numbers from top-left to bottom-right
C. The number of paths from top-left to bottom-right
D. The maximum number in the grid

Solution

  1. Step 1: Understand the problem goal

    The problem asks to find a path from the top-left cell to the bottom-right cell of a grid such that the sum of all numbers on the path is as small as possible.
  2. Step 2: Clarify path movement

    Movement is only allowed down or right at each step, so the path is constrained.
  3. Final Answer:

    The path with the smallest sum of numbers from top-left to bottom-right -> Option A
  4. Quick Check:

    Minimum path sum means smallest total sum [OK]
Hint: Look for smallest sum path moving only right or down [OK]
Common Mistakes:
  • Thinking the path can move diagonally or up
  • Looking for maximum sum instead of minimum
  • Counting number of paths instead of sum
2. Which of the following Java code snippets correctly initializes a 2D array named grid with 3 rows and 3 columns filled with zeros?
easy
A. int grid[][] = new int[3];
B. int[][] grid = new int[3][3];
C. int[] grid = new int[3][3];
D. int[][] grid = new int[3];

Solution

  1. Step 1: Understand Java 2D array syntax

    In Java, a 2D array is declared as int[][] name = new int[rows][columns];. This creates a grid with specified rows and columns.
  2. Step 2: Check each option

    int[][] grid = new int[3][3]; correctly declares a 3x3 int 2D array. Options A, C, and D have incorrect syntax or dimensions.
  3. Final Answer:

    int[][] grid = new int[3][3]; -> Option B
  4. Quick Check:

    Correct 2D array syntax = int[][] grid = new int[3][3]; [OK]
Hint: Use int[][] name = new int[rows][cols] for 2D arrays [OK]
Common Mistakes:
  • Declaring 2D arrays with wrong brackets
  • Initializing only one dimension
  • Confusing 1D and 2D array syntax
3. What is the output of the following Java code that calculates the minimum path sum in a 2x2 grid?
int[][] grid = {{1, 3}, {1, 5}};
int m = grid.length;
int n = grid[0].length;
int[][] dp = new int[m][n];
dp[0][0] = grid[0][0];
for (int i = 1; i < m; i++) dp[i][0] = dp[i-1][0] + grid[i][0];
for (int j = 1; j < n; j++) dp[0][j] = dp[0][j-1] + grid[0][j];
for (int i = 1; i < m; i++) {
  for (int j = 1; j < n; j++) {
    dp[i][j] = Math.min(dp[i-1][j], dp[i][j-1]) + grid[i][j];
  }
}
System.out.println(dp[m-1][n-1]);
medium
A. 7
B. 8
C. 9
D. 10

Solution

  1. Step 1: Initialize dp array with first row and column sums

    dp[0][0] = 1
    dp[1][0] = dp[0][0] + grid[1][0] = 1 + 1 = 2
    dp[0][1] = dp[0][0] + grid[0][1] = 1 + 3 = 4
  2. Step 2: Calculate dp[1][1]

    dp[1][1] = min(dp[0][1], dp[1][0]) + grid[1][1] = min(4, 2) + 5 = 2 + 5 = 7
  3. Final Answer:

    7 -> Option A
  4. Quick Check:

    Minimum path sum = 7 [OK]
Hint: Fill dp row and column first, then use min of top and left [OK]
Common Mistakes:
  • Adding max instead of min
  • Not initializing first row and column correctly
  • Mixing indices in loops
4. Identify the error in the following Java code snippet that tries to compute the minimum path sum in a grid:
int[][] grid = {{1,2,3},{4,5,6}};
int m = grid.length;
int n = grid[0].length;
int[][] dp = new int[m][n];
dp[0][0] = grid[0][0];
for (int i = 1; i < m; i++) {
  dp[i][0] = dp[i-1][0] + grid[i][0];
}
for (int j = 1; j < n; j++) {
  dp[0][j] = dp[0][j-1] + grid[0][j];
}
for (int i = 1; i < m; i++) {
  for (int j = 1; j < n; j++) {
    dp[i][j] = Math.max(dp[i-1][j], dp[i][j-1]) + grid[i][j];
  }
}
medium
A. Grid dimensions are wrong
B. Not initializing dp[0][0]
C. Loop ranges are incorrect
D. Using Math.max instead of Math.min in dp calculation

Solution

  1. Step 1: Check dp initialization

    dp[0][0] is correctly initialized to grid[0][0]. Loops for first row and column are correct.
  2. Step 2: Identify the error in dp update

    The inner loop uses Math.max instead of Math.min, which finds the maximum path sum, not minimum.
  3. Final Answer:

    Using Math.max instead of Math.min in dp calculation -> Option D
  4. Quick Check:

    Minimum path sum needs Math.min, not Math.max [OK]
Hint: Use Math.min to find minimum path sum, not Math.max [OK]
Common Mistakes:
  • Using max instead of min in dp update
  • Forgetting to initialize dp[0][0]
  • Incorrect loop boundaries
5. Given a 3x3 grid:
int[][] grid = {
  {1, 2, 5},
  {3, 2, 1},
  {4, 1, 1}
};

What is the minimum path sum from top-left to bottom-right moving only right or down?
hard
A. 9
B. 8
C. 7
D. 10

Solution

  1. Step 1: Initialize dp first row and column sums

    dp[0][0] = 1
    dp[0][1] = 1 + 2 = 3
    dp[0][2] = 3 + 5 = 8
    dp[1][0] = 1 + 3 = 4
    dp[2][0] = 4 + 4 = 8
  2. Step 2: Calculate dp values for inner cells

    dp[1][1] = min(dp[0][1], dp[1][0]) + 2 = min(3,4) + 2 = 5
    dp[1][2] = min(dp[0][2], dp[1][1]) + 1 = min(8,5) + 1 = 6
    dp[2][1] = min(dp[1][1], dp[2][0]) + 1 = min(5,8) + 1 = 6
    dp[2][2] = min(dp[1][2], dp[2][1]) + 1 = min(6,6) + 1 = 7
  3. Final Answer:

    7 -> Option C
  4. Quick Check:

    Minimum path sum = 7 [OK]
Hint: Fill dp row and column first, then inner cells with min of top and left [OK]
Common Mistakes:
  • Not updating dp correctly for inner cells
  • Adding max instead of min
  • Incorrect initialization of first row or column
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard