题目大意:机器人从一个M*N的矩阵的左上角到右下角能有多少种走法,机器人每次只能向下或者右走一格。
其实机器人到第a,b号格子的走法数是这个格子左边的格子的走法数加上这个格子上边格子的走法数。
现在代码就好写了
class Solution {
public:
int mat[100][100];
int uniquePaths(int m, int n) {
int i,j;
for(i=0;i<m;i++)
mat[i][0]=1;
for(i=0;i<n;i++)
mat[0][i]=1;
for(i=1;i<m;i++)
{
for(j=1;j<=n;j++)
{
mat[i][j]=mat[i][j-1]+mat[i-1][j];
}
}
return mat[m-1][n-1];
}
};
矩阵可以用数组替代,大家可以去网上看看优化的代码。思想是一样的