Bird
Raised Fist0
DSA Typescriptprogramming~10 mins

Minimum Path Sum in Grid in DSA Typescript - Execution Trace

Choose your learning style10 modes available
Concept Flow - Minimum Path Sum in Grid
Start at top-left cell (0,0)
↓
Calculate min path sum for current cell
↓
Move right or down
↓
Right cell
↓
Choose smaller sum + current cell value
↓
Repeat until bottom-right cell reached
↓
Return min path sum at bottom-right
Start from the top-left cell, move only right or down, calculate minimum path sums step-by-step until reaching the bottom-right cell.
Execution Sample
DSA Typescript
function minPathSum(grid: number[][]): number {
  const m = grid.length, n = grid[0].length;
  for (let i = 1; i < m; i++) grid[i][0] += grid[i-1][0];
  for (let j = 1; j < n; j++) grid[0][j] += grid[0][j-1];
  for (let i = 1; i < m; i++) {
    for (let j = 1; j < n; j++) {
      grid[i][j] += Math.min(grid[i-1][j], grid[i][j-1]);
    }
  }
  return grid[m-1][n-1];
}
Calculates minimum path sum from top-left to bottom-right by updating grid cells with cumulative minimum sums.
Execution Table
StepOperationCell UpdatedValue AddedGrid StateExplanation
1Initialize first column(1,0)1 + 3 = 4[[1,3,1],[4,5,1],[1,5,1]]Add above cell value to current cell in first column
2Initialize first column(2,0)4 + 1 = 5[[1,3,1],[4,5,1],[5,5,1]]Add above cell value to current cell in first column
3Initialize first row(0,1)1 + 3 = 4[[1,4,1],[4,5,1],[5,5,1]]Add left cell value to current cell in first row
4Initialize first row(0,2)4 + 1 = 5[[1,4,5],[4,5,1],[5,5,1]]Add left cell value to current cell in first row
5Update cell(1,1)5 + min(4,4) = 9[[1,4,5],[4,9,1],[5,5,1]]Add min of top and left cells to current cell
6Update cell(1,2)1 + min(5,9) = 6[[1,4,5],[4,9,6],[5,5,1]]Add min of top and left cells to current cell
7Update cell(2,1)5 + min(9,5) = 10[[1,4,5],[4,9,6],[5,10,1]]Add min of top and left cells to current cell
8Update cell(2,2)1 + min(6,10) = 7[[1,4,5],[4,9,6],[5,10,7]]Add min of top and left cells to current cell
9Return result(2,2)7[[1,4,5],[4,9,6],[5,10,7]]Minimum path sum is value at bottom-right cell
💡 Reached bottom-right cell (2,2), minimum path sum calculated as 7
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3After Step 4After Step 5After Step 6After Step 7After Step 8Final
grid[[1,3,1],[1,5,1],[4,2,1]][[1,3,1],[4,5,1],[4,2,1]][[1,3,1],[4,5,1],[5,2,1]][[1,4,1],[4,5,1],[5,2,1]][[1,4,5],[4,5,1],[5,2,1]][[1,4,5],[4,9,1],[5,2,1]][[1,4,5],[4,9,6],[5,2,1]][[1,4,5],[4,9,6],[5,10,1]][[1,4,5],[4,9,6],[5,10,7]][[1,4,5],[4,9,6],[5,10,7]]
Key Moments - 3 Insights
Why do we first update the first row and first column separately before the rest of the grid?
Because the first row and column can only be reached from one direction (left for row, top for column), so their minimum path sums are cumulative sums along that row or column. This is shown in steps 1-4 in the execution_table.
Why do we add the minimum of the top and left cells to the current cell value?
Because the path to the current cell can only come from the top or left, so we choose the smaller path sum to ensure the minimum total. This is shown in steps 5-8 in the execution_table.
Why is the final answer the value at the bottom-right cell?
Because after updating all cells with minimum path sums, the bottom-right cell contains the minimum sum to reach it from the top-left, as shown in step 9.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the value of the grid at cell (1,1) after step 5?
A9
B5
C6
D4
💡 Hint
Check the 'Cell Updated' and 'Value Added' columns in step 5 of the execution_table.
At which step does the condition to update the bottom-right cell (2,2) happen?
AStep 7
BStep 8
CStep 9
DStep 6
💡 Hint
Look for the step where cell (2,2) is updated in the execution_table.
If the initial grid's first row was [1,1,1] instead of [1,3,1], how would the value at cell (0,2) after step 4 change?
AIt would be 3
BIt would be 2
CIt would be 1
DIt would be 4
💡 Hint
Refer to the variable_tracker and execution_table steps 3 and 4 for first row initialization.
Concept Snapshot
Minimum Path Sum in Grid:
- Start at top-left cell
- Initialize first row and column with cumulative sums
- For each cell, add min(top, left) cell value
- Move only right or down
- Result is value at bottom-right cell
Full Transcript
This visualization shows how to find the minimum path sum in a grid by moving only right or down. We start at the top-left cell and update the first row and first column with cumulative sums because they have only one path. Then, for each other cell, we add the minimum of the top and left cells to the current cell's value. This process continues until we reach the bottom-right cell, which holds the minimum path sum. The execution table tracks each update step, showing the cell updated, the value added, and the grid state after each operation. Key moments clarify why we initialize the first row and column separately and why we choose the minimum of the top and left cells. The visual quiz tests understanding of specific steps and changes in the grid values.

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 maximum number in the grid
B. The path with the smallest sum of numbers from top-left to bottom-right
C. The number of paths from top-left to bottom-right
D. The path with the largest sum of numbers from top-left to bottom-right

Solution

  1. Step 1: Understand the problem goal

    The problem asks to find a path from the top-left corner to the bottom-right corner of the grid that has the smallest sum of all numbers along the path.
  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 B
  4. Quick Check:

    Minimum path sum means smallest total sum [OK]
Hint: Look for smallest sum path from top-left to bottom-right [OK]
Common Mistakes:
  • Confusing minimum with maximum sum
  • Counting number of paths instead of sum
  • Ignoring movement constraints (only right/down)
2. Which TypeScript syntax correctly initializes a 2D array named grid with values [[1,2],[3,4]]?
easy
A. const grid = [1,2,3,4];
B. const grid = new Array(1,2,3,4);
C. const grid = [[1,2],[3,4]];
D. const grid = Array(2,2);

Solution

  1. Step 1: Understand 2D array initialization

    To create a 2D array with specific values, use nested arrays like [[1,2],[3,4]].
  2. Step 2: Check each option

    const grid = [[1,2],[3,4]]; correctly uses nested arrays. Options B and D create arrays but not nested with those values. const grid = [1,2,3,4]; is a flat array.
  3. Final Answer:

    const grid = [[1,2],[3,4]]; -> Option C
  4. Quick Check:

    Nested arrays create 2D arrays [OK]
Hint: Use nested brackets for 2D arrays in TypeScript [OK]
Common Mistakes:
  • Using flat arrays instead of nested arrays
  • Using Array constructor incorrectly
  • Confusing array length with array content
3. What is the minimum path sum for the grid below?
const grid = [
  [1, 3, 1],
  [1, 5, 1],
  [4, 2, 1]
];
medium
A. 7
B. 8
C. 9
D. 10

Solution

  1. Step 1: Trace possible paths and sums

    Possible minimum path: 1 -> 3 -> 1 -> 1 -> 1 = 7 (wrong path, check carefully). Another path: 1 -> 1 -> 5 -> 1 -> 1 = 9. Correct minimum path is 1 -> 3 -> 1 -> 1 -> 1 = 7 is invalid because movement is only right/down. Let's check carefully:
    Path: (0,0)=1 -> (1,0)=1 -> (2,0)=4 -> (2,1)=2 -> (2,2)=1 sum=1+1+4+2+1=9
    Path: (0,0)=1 -> (0,1)=3 -> (0,2)=1 -> (1,2)=1 -> (2,2)=1 sum=1+3+1+1+1=7
    But movement only right/down, so path is valid.
    Check if any smaller sum exists.
  2. Step 2: Confirm minimum sum

    The minimum path sum is 8 by moving right, down, down, right.
    Path: (0,0)=1 -> (0,1)=3 -> (1,1)=5 -> (2,1)=2 -> (2,2)=1 sum=1+3+5+2+1=12 (too large)
    Try path: (0,0)=1 -> (1,0)=1 -> (1,1)=5 -> (1,2)=1 -> (2,2)=1 sum=1+1+5+1+1=9
    Try path: (0,0)=1 -> (1,0)=1 -> (2,0)=4 -> (2,1)=2 -> (2,2)=1 sum=1+1+4+2+1=9
    Try path: (0,0)=1 -> (0,1)=3 -> (0,2)=1 -> (1,2)=1 -> (2,2)=1 sum=1+3+1+1+1=7 (valid)
    So minimum sum is 7.
  3. Final Answer:

    7 -> Option A
  4. Quick Check:

    Sum of path 1->3->1->1->1 = 7 [OK]
Hint: Add numbers along right/down paths, pick smallest sum [OK]
Common Mistakes:
  • Adding numbers from invalid paths (not only right/down)
  • Forgetting to include starting cell value
  • Mixing row and column indices
4. Identify the error in this TypeScript function to find minimum path sum:
function minPathSum(grid: number[][]): number {
  const m = grid.length;
  const n = grid[0].length;
  const dp = Array(m).fill(Array(n).fill(0));
  dp[0][0] = grid[0][0];
  for (let i = 1; i < m; i++) dp[i][0] = dp[i-1][0] + grid[i][0];
  for (let j = 1; j < n; j++) dp[0][j] = dp[0][j-1] + grid[0][j];
  for (let i = 1; i < m; i++) {
    for (let 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];
}
medium
A. grid is not checked for empty input
B. Loop ranges are incorrect, should start from 0
C. Return statement returns wrong cell
D. dp array initialization shares references causing incorrect updates

Solution

  1. Step 1: Analyze dp array initialization

    Using Array(m).fill(Array(n).fill(0)) creates m references to the same inner array, so updating one row updates all rows.
  2. Step 2: Understand impact on dp updates

    Because all rows share the same array, dp updates overwrite each other, causing wrong results.
  3. Final Answer:

    dp array initialization shares references causing incorrect updates -> Option D
  4. Quick Check:

    Array.fill with objects shares references [OK]
Hint: Use loops or map to create independent inner arrays [OK]
Common Mistakes:
  • Using fill for 2D array causes shared references
  • Ignoring empty grid input checks
  • Incorrect loop start indices
5. Given a grid:
const grid = [
  [2, 1, 3],
  [6, 5, 4],
  [7, 8, 9]
];

Write a TypeScript function to find the minimum path sum from top-left to bottom-right, moving only right or down. What is the minimum path sum?
hard
A. 19
B. 20
C. 21
D. 18

Solution

  1. Step 1: Calculate dp values row-wise and column-wise

    Start dp[0][0] = 2.
    First row: dp[0][1] = 2+1=3, dp[0][2] = 3+3=6.
    First column: dp[1][0] = 2+6=8, dp[2][0] = 8+7=15.
  2. Step 2: Fill remaining dp cells using min of top or left + current grid value

    dp[1][1] = min(dp[0][1], dp[1][0]) + 5 = min(3,8)+5=8
    dp[1][2] = min(dp[0][2], dp[1][1]) + 4 = min(6,8)+4=10
    dp[2][1] = min(dp[1][1], dp[2][0]) + 8 = min(8,15)+8=16
    dp[2][2] = min(dp[1][2], dp[2][1]) + 9 = min(10,16)+9=19
  3. Final Answer:

    19 -> Option A
  4. Quick Check:

    Minimum path sum dp[m-1][n-1] = 19 [OK]
Hint: Use dp table, fill from top-left to bottom-right [OK]
Common Mistakes:
  • Adding values incorrectly in dp table
  • Mixing up indices for rows and columns
  • Not considering only right/down moves
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