题目描述:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。总共有多少条不同的路径?
获得更多?算法思路:代码文档,算法解析的私得。
完整代码
/**
* 2 * @Author: LJJ
* 3 * @Date: 2023/7/24 9:05
* 4
*/
public class UniquePaths {
public static int uniquePaths(int m, int n) {
int[][] dp = new int[m][n];
//初始化边界条件
for (int i= 0;i<m;i++){
dp[i][0] = 1;
}
for (int j = 0; j < n; j++){
dp[0][j] = 1;
}
//逐步计算dp数组
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];
}
public static void main(String[] args) {
int m = 3;
int n = 4;
int paths = uniquePaths(m, n);
System.out.println("Total number of unique paths: " + paths);
}
}