Solution 1:二维的dp
时间复杂度:0(mn)
空间复杂度:0(mn)
class Solution {
public int uniquePaths(int m, int n) {
int [][] dp = new int[n][m];
for(int i = 0; i < m ;i++){
dp[0][i] = 1;
}
for(int i = 0 ;i < n;i++){
dp[i][0] = 1;
}
for(int i = 1;i < n ;i++){
for(int j = 1;j < m;j++){
dp[i][j] = dp[i-1][j] + dp[i][j-1];
}
}
return dp[n-1][m-1];
}
}
Solution 2: 一维的dp
时间复杂度:0(m*n)
空间复杂度:0(m)
class Solution {
public int uniquePaths(int m, int n) {
int [] dp = new int[m];
Arrays.fill(dp,1);
for(int i = 1; i < n;i++){
dp[0] = 1;
for(int j = 1;j < m;j++){
dp[j] += dp[j-1];
}
}
return dp[m-1];
}
}