| 1 | Initialize dp[0][0] | (0,0) | 1 | dp[0][0] = grid[0][0] = 1 | [1, _, _]
[_, _, _]
[_, _, _] |
| 2 | Fill first row | (0,1) | 4 | dp[0][1] = dp[0][0] + grid[0][1] = 1 + 3 | [1, 4, _]
[_, _, _]
[_, _, _] |
| 3 | Fill first row | (0,2) | 5 | dp[0][2] = dp[0][1] + grid[0][2] = 4 + 1 | [1, 4, 5]
[_, _, _]
[_, _, _] |
| 4 | Fill first column | (1,0) | 4 | dp[1][0] = dp[0][0] + grid[1][0] = 1 + 3 | [1, 4, 5]
[4, _, _]
[_, _, _] |
| 5 | Calculate dp[1][1] | (1,1) | 8 | min(dp[0][1], dp[1][0]) + grid[1][1] = min(4,4)+4=8 | [1, 4, 5]
[4, 8, _]
[_, _, _] |
| 6 | Calculate dp[1][2] | (1,2) | 9 | min(dp[0][2], dp[1][1]) + grid[1][2] = min(5,8)+4=9 | [1, 4, 5]
[4, 8, 9]
[_, _, _] |
| 7 | Fill first column | (2,0) | 7 | dp[2][0] = dp[1][0] + grid[2][0] = 4 + 3 | [1, 4, 5]
[4, 8, 9]
[7, _, _] |
| 8 | Calculate dp[2][1] | (2,1) | 9 | min(dp[1][1], dp[2][0]) + grid[2][1] = min(8,7)+2=9 | [1, 4, 5]
[4, 8, 9]
[7, 9, _] |
| 9 | Calculate dp[2][2] | (2,2) | 11 | min(dp[1][2], dp[2][1]) + grid[2][2] = min(9,9)+2=11 | [1, 4, 5]
[4, 8, 9]
[7, 9, 11] |
| 10 | Return result | (2,2) | 11 | Minimum path sum found at bottom-right cell | [1, 4, 5]
[4, 8, 9]
[7, 9, 11] |