问题原始链接 https://leetcode.com/problems/unique-paths
一个机器人在 m*n 网络的左上角,机器人在任何时刻只能向右或者向下走,机器人想要到达右下角。请问有多少条不同的路径。
注意:m 和 n 最大为100。
使用动态规划法。申请整数矩阵 dp[m][n],dp[i][j]表示到达(i,j)位置的不同路径数。到达9i,j)位置有两种方式,一种是从(i-1,j)向下,另一种是从(i,j-1)向右,所以 dp[i][j]=dp[i-1][j]+dp[i][j-1]。
public class Solution {
public static int uniquePaths(int m, int n) {
if (m <= 0 || n <= 0) {
return 0;
}
int[][] dp = new int[m][n];
for (int j = 0; j < n; j++) {
dp[0][j] = 1;
}
for (int i = 1; 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];
}
}