There is a robot on an
m x n
grid. The robot is initially located at the top-left corner (i.e., grid[0][0]
). The robot tries to move to the bottom-right corner (i.e., grid[m - 1][n - 1]
). The robot can only move either down or right at any point in time.Given the two integers
m
and n
, return the number of possible unique paths that the robot can take to reach the bottom-right corner.The test cases are generated so that the answer will be less than or equal to
2 * 10<sup>9</sup>
.Example 1:
Input: m = 3, n = 7
Output: 28
Example 2:
Input: m = 3, n = 2
Output: 3
Explanation: From the top-left corner, there are a total of 3 ways to reach the bottom-right corner:
1. Right -> Down -> Down
2. Down -> Down -> Right
3. Down -> Right -> Down
Constraints:
*
1 <= m, n <= 100
题目大意:
求矩阵路径总数
解题思路:
求个数用DP,递归式:1
dp[i][j] = dp[i-1][j] + dp[i][j-1]
解题步骤:
N/A
注意事项:
- 初始值dp[1] = 1而不是dp[0] = 1因为第二行的第一格不能加左边的虚拟格=1
- range(m)不是range(len(m))
- 优化空间用一维
Python代码:
1 | def uniquePaths(self, m: int, n: int) -> int: |
算法分析:
时间复杂度为O(n2)
,空间复杂度O(n2)