1.一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。
问总共有多少条不同的路径?

class Solution {
public int uniquePaths(int m, int n) {
int[][] dp = new int[m][n];
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
if (i == 0 || j == 0)
dp[i][j] = 1;
else {
dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
}
}
}
return dp[m - 1][n - 1];
}
}
这篇博客探讨了一种经典的计算机科学问题:如何计算一个机器人从网格的左上角到达右下角的不同路径数量。提供的Java代码实现了一个动态规划解决方案,通过创建一个二维数组来存储每个位置的路径数,并利用状态转移方程dp[i][j] = dp[i-1][j] + dp[i][j-1]进行计算。最终返回dp[m-1][n-1]即为答案。

被折叠的 条评论
为什么被折叠?



