A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below).
The robot can only move either down or right at any point in time. The robot is trying to reach the bottom-right corner of the grid (marked 'Finish' in the diagram below).
How many possible unique paths are there?

Above is a 3 x 7 grid. How many possible unique paths are there?
Note: m and n will be at most 100.
DP解决,第一行所有格子只能来自它的左边,第一列所有格子只能来自它的上一个格子,这些格子的路径数均初始化为1。
递推方程 DP[i][j]=DP[i-1][j] + DP[i][j-1]
public static int uniquePaths(int m, int n)
{
int[][] dp=new int[m+1][n+1];
for(int i=1;i<=m;i++)
dp[i][1]=1;
for(int j=1;j<=n;j++)
dp[1][j]=1;
for(int i=2;i<=m;i++)
for(int j=2;j<=n;j++)
dp[i][j]=dp[i-1][j]+dp[i][j-1];
return dp[m][n];
}
本文介绍了一个经典的动态规划问题——计算机器人从网格左上角到右下角的不同路径数量。通过初始化边界条件并利用递推公式DP[i][j]=DP[i-1][j]+DP[i][j-1]来解决问题。
376

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



