class Solution {
public int uniquePaths(int m, int n) {
int[][] dp = new int[m][n];
// dp初始化
for(int i=0;i<m;i++){
dp[i][0] = 1;
}
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];
}
}
题解:
- dp[i][j]表示到位置(i,j)有几条路径。
- 初始化:第一行和第一列都只有一条。
- 递推公式为,到位置(i,j)的路径数为,该位置左边或者上边位置的路径和。(因为到该位置要不冲上边位置走过来,要不从左边位置走过来)