题目描述:
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。
问总共有多少条不同的路径?
解题思路:
这是一个经典的动态规划题,从开始位置到第一行或者第一列,永远只有一种走法,然后到其余的地方,可以从上往下,也可以从左往右,所以到该位置的走法就有【上走法】+【下走法】,依次类推。
java代码实现:
class Solution {
public int uniquePaths(int m, int n) {
int[][] result = new int[m][n];
for(int i = 0;i < m;i++){
for(int j = 0;j < n;j++){
if(i == 0 || j == 0){
result[i][j] = 1;
}
else{
result[i][j] = result[i-1][j] + result[i][j-1];
}
}
}
return result[m-1][n-1];
}
}