题目描述
一个机器人在m×n大小的地图的左上角(起点,下图中的标记“start"的位置)。
机器人每次向下或向右移动。机器人要到达地图的右下角。(终点,下图中的标记“Finish"的位置)。
可以有多少种不同的路径从起点走到终点?
上图是3×7大小的地图,有多少不同的路径?
备注:m和n小于等于100
public int uniquePaths (int m, int n) {
int[][] dp = new int[m][n];
for(int i=0;i<m;i++){//将第一列初始为1
dp[i][0] = 1;
}
for(int j=0;j<n;j++){//将第一行初始为1
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];//相邻并且已遍历格子 的路径数之和
}
}//for
return dp[m-1][n-1];
}