Bird
Raised Fist0
DSA C++programming~10 mins

Minimum Path Sum in Grid in DSA C++ - Interactive Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to initialize the first cell of the dp grid with the value from the input grid.

DSA C++
dp[0][0] = grid[1][0][0];
Drag options to blanks, or click blank then click option'
A[
B*
C(
D.
Attempts:
3 left
💡 Hint
Common Mistakes
Using parentheses () instead of square brackets []
Using dot operator . which is invalid for vector element access
2fill in blank
medium

Complete the code to fill the first row of the dp grid by accumulating sums from the left.

DSA C++
for (int j = 1; j < n; j++) dp[0][j] = dp[0][j-1] [1] grid[0][j];
Drag options to blanks, or click blank then click option'
A-
B*
C+
D/
Attempts:
3 left
💡 Hint
Common Mistakes
Using subtraction or multiplication instead of addition
Using division which is not meaningful here
3fill in blank
hard

Fix the error in the code to fill the first column of the dp grid by accumulating sums from above.

DSA C++
for (int i = 1; i < m; i++) dp[i][0] = dp[i-1][0] [1] grid[i][0];
Drag options to blanks, or click blank then click option'
A-
B+
C*
D/
Attempts:
3 left
💡 Hint
Common Mistakes
Using subtraction or multiplication instead of addition
Using division which is not meaningful here
4fill in blank
hard

Fill both blanks to compute the minimum path sum for each cell by choosing the smaller sum from top or left plus current grid value.

DSA C++
dp[i][j] = std::min(dp[i-[1]][j], dp[i][j-[2]]) + grid[i][j];
Drag options to blanks, or click blank then click option'
A1
B0
C2
Di
Attempts:
3 left
💡 Hint
Common Mistakes
Using 0 or 2 instead of 1 for index subtraction
Using variable i instead of constant 1
5fill in blank
hard

Fill all three blanks to complete the function that returns the minimum path sum from top-left to bottom-right of the grid.

DSA C++
int minPathSum(std::vector<std::vector<int>>& grid) {
    int m = grid.size();
    int n = grid[0].size();
    std::vector<std::vector<int>> dp(m, std::vector<int>(n, 0));
    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-[2]] + grid[0][j];
    for (int i = 1; i < m; i++) {
        for (int j = 1; j < n; j++) {
            dp[i][j] = std::min(dp[i-[3]][j], dp[i][j-1]) + grid[i][j];
        }
    }
    return dp[m-1][n-1];
}
Drag options to blanks, or click blank then click option'
A1
B0
D2
Attempts:
3 left
💡 Hint
Common Mistakes
Using 0 or 2 instead of 1 for index subtraction
Mixing up indices in nested loops

Practice

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

Solution

  1. Step 1: Understand the problem goal

    The problem asks for the minimum sum of values collected when moving from the top-left corner to the bottom-right corner of a grid, moving only right or down.
  2. Step 2: Clarify movement constraints

    Only moves to the right or down are allowed, so the path is restricted and the sum depends on chosen cells.
  3. Final Answer:

    The smallest sum of numbers along a path from top-left to bottom-right, moving only right or down. -> Option D
  4. Quick Check:

    Minimum path sum = smallest sum path [OK]
Hint: Focus on sum along right/down moves only [OK]
Common Mistakes:
  • Thinking diagonal moves are allowed
  • Looking for maximum sum instead of minimum
  • Counting number of paths instead of sum
2. Which of the following C++ code snippets correctly initializes a 2D vector named grid with 3 rows and 4 columns filled with zeros?
easy
A. std::vector grid(3, std::vector<int>(4, 0));
B. std::vector<int> grid(3, std::vector<int>(4, 0));
C. std::vector grid(4, std::vector<int>(3, 0));
D. std::vector grid(3, 4, 0);

Solution

  1. Step 1: Understand 2D vector initialization syntax

    To create a 2D vector with 3 rows and 4 columns filled with zeros, we use vector of vectors: outer vector size 3, inner vector size 4, each element 0.
  2. Step 2: Check each option

    std::vector grid(3, std::vector<int>(4, 0)); correctly uses std::vector grid(3, std::vector<int>(4, 0)); which means 3 rows, each row is a vector of 4 zeros.
  3. Final Answer:

    std::vector grid(3, std::vector<int>(4, 0)); -> Option A
  4. Quick Check:

    Correct 2D vector init = std::vector grid(3, std::vector<int>(4, 0)); [OK]
Hint: Use vector of vectors with inner vector size and default value [OK]
Common Mistakes:
  • Using wrong vector type for 2D
  • Swapping rows and columns sizes
  • Trying to pass three arguments to vector constructor
3. What is the output of the following C++ code that calculates the minimum path sum in a 2x2 grid?
std::vector grid = {{1, 3}, {1, 5}};
int m = grid.size();
int n = grid[0].size();
for (int i = 1; i < m; i++) grid[i][0] += grid[i-1][0];
for (int j = 1; j < n; j++) grid[0][j] += grid[0][j-1];
for (int i = 1; i < m; i++) {
  for (int j = 1; j < n; j++) {
    grid[i][j] += std::min(grid[i-1][j], grid[i][j-1]);
  }
}
std::cout << grid[m-1][n-1] << std::endl;
medium
A. 7
B. 8
C. 9
D. 10

Solution

  1. Step 1: Calculate first column cumulative sums

    grid[1][0] = grid[1][0] + grid[0][0] = 1 + 1 = 2
  2. Step 2: Calculate first row cumulative sums

    grid[0][1] = grid[0][1] + grid[0][0] = 3 + 1 = 4
  3. Step 3: Calculate inner cell minimum path sums

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

    7 -> Option A
  5. Quick Check:

    Minimum path sum = 7 [OK]
Hint: Update first row and column cumulatively, then inner cells [OK]
Common Mistakes:
  • Not updating first row and column before inner cells
  • Adding max instead of min
  • Mixing indices i and j
4. The following code attempts to compute the minimum path sum in a grid but has a bug. What is the error?
std::vector grid = {{1, 2, 3}, {4, 5, 6}};
int m = grid.size();
int n = grid[0].size();
for (int i = 1; i < m; i++) grid[i][0] += grid[i-1][0];
for (int j = 1; j < n; j++) grid[0][j] += grid[0][j-1];
for (int i = 1; i < m; i++) {
  for (int j = 1; j < n; j++) {
    grid[i][j] += std::max(grid[i-1][j], grid[i][j-1]);
  }
}
std::cout << grid[m-1][n-1] << std::endl;
medium
A. Wrong loop ranges for i and j
B. Not initializing first row and column
C. Using std::max instead of std::min in inner loop
D. Incorrect grid initialization syntax

Solution

  1. Step 1: Check the inner loop operation

    The code uses std::max to update grid[i][j], but the problem requires minimum path sum, so std::min should be used.
  2. Step 2: Verify other parts

    First row and column are correctly initialized, loops have correct ranges, and grid initialization is valid.
  3. Final Answer:

    Using std::max instead of std::min in inner loop -> Option C
  4. Quick Check:

    Use min for minimum path sum [OK]
Hint: Use min, not max, when updating path sums [OK]
Common Mistakes:
  • Confusing max and min functions
  • Skipping first row/column initialization
  • Off-by-one errors in loops
5. Given the grid below, what is the minimum path sum from top-left to bottom-right?
grid = {
  {1, 3, 1, 2},
  {1, 5, 1, 1},
  {4, 2, 1, 3}
};
You can only move right or down. Calculate the minimum sum.
hard
A. 8
B. 10
C. 9
D. 11

Solution

  1. Step 1: Compute first row and first column cumulative sums

    First row: [1, 4, 5, 7] (1, 1+3=4, 4+1=5, 5+2=7) First column: [1, 2, 6] (1, 1+1=2, 2+4=6)
  2. Step 2: Calculate inner cells minimum path sums

    Row 1, col 1: 5 + min(4,2) = 5 + 2 = 7 Row 1, col 2: 1 + min(5,7) = 1 + 5 = 6 Row 1, col 3: 1 + min(7,6) = 1 + 6 = 7 Row 2, col 1: 2 + min(7,6) = 2 + 6 = 8 Row 2, col 2: 1 + min(6,8) = 1 + 6 = 7 Row 2, col 3: 3 + min(7,7) = 3 + 7 = 10
  3. Final Answer:

    10 -> Option B
  4. Quick Check:

    Minimum path sum = 10 [OK]
Hint: Fill first row/column, then inner cells with min sums [OK]
Common Mistakes:
  • Adding max instead of min
  • Incorrect cumulative sums for first row/column
  • Misindexing grid cells
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