输入:m = 3, n = 7输出:28
int uniquePaths(int m, int n) { int** dp = (int**)malloc(sizeof(int*)*m); for(int i=0;i<m;i++){ dp[i] = (int*)malloc(sizeof(int)*n); } //初始化dp二维数组的第一行和第一列都为1,因为这上面的格子只有一种路径 for(int i=0;i<n;i++){ dp[0][i] = 1; } for(int i=0;i<m;i++){ dp[i][0] = 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]; }