1、用nums[i][j]表示到达格子(i,j)的路径数。
由于机器人只能向下或者向右走,所以有状态转移方程nums[i][j]=nums[i-1][j]+nums[i][j-1]
进行初始化,nums[0][j]和nums[i][0]均为1;
优化,降维,因为每次状态转移只用到了上一行同列的数和同行上一列的数,所以可以用一个一维数组表示,降维后状态转移方程为nums[i]=nums[i]+nums[i-1]
class Solution {
public:
int uniquePaths(int m, int n) {
int nums[n];
for(int i=0;i<n;++i) nums[i]=1;
for(int i=1;i<m;++i)
for(int j=1;j<n;++j) nums[j]+=nums[j-1];
return nums[n-1];
}
};