1. 062
2.算法
DP:O(nm)
- 机器人要到点(i,j),可以选择(i-1,j)和(i,j-1)
到(i,j)的唯一路径数
dp[i][j]=dp[i-1][j]+dp[i][j-1]
dp[i][j]是从(0,0)到(i,j)的唯一路径
网格最上边和最左边,则只能从起点走直线,dp[0][j]=dp[i][0]=1
计算方向从上到下,从左到右,滚动数组
3. 代码
class Solution{
public:
int uniquePaths(int m,int n){
int dp[m][n];
//初始化dp,m*1全是1的情况
for(int i=0;i<m;i++)
dp[i][0]=1;
//初始化dp.1*n全是1的情况
for(int j=0;j<n;j++)
dp[0][j]=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];
}
};