62. Unique Paths (2D-dp)
class Solution {
public int uniquePaths(int m, int n) {
int dp[][] = new int[m][n];
for (int i = 0; i < m; i++) dp[i][0] = 1; // from left top corner
for (int i = 0; i < n; i++) dp[0][i] = 1;
for (int i = 1; i < m; i++) {
for (int j = 1; j < n; j++) {
dp[i][j] = dp[i-1][j] + dp[i][j-1];
}
}
return dp[m-1][n-1];
}
}class Solution {
public int uniquePaths(int m, int n) {
int dp[][] = new int[m][n];
for (int i = 0; i < m; i++) dp[i][n-1] = 1; // from button
for (int i = 0; i < n; i++) dp[m-1][i] = 1;
for (int i = m-1; i > 0; i--) {
for (int j = n-1; j > 0; j--) {
dp[i-1][j-1] = dp[i-1][j] + dp[i][j-1];
}
}
return dp[0][0];
}
}



Last updated