一个机器人位于一个 m * n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?
https://leetcode-cn.com/problems/unique-paths/
示例1:
示例2:
示例3:
示例4:
提示:
Java解法
public static int uniquePaths2(int m, int n) {
long ans = 1;
for (int x = n, y = 1; y < m; ++x, ++y) {
ans = ans * x / y;
}
return (int) ans;
}
官方解
https://leetcode-cn.com/problems/unique-paths/solution/bu-tong-lu-jing-by-leetcode-solution-hzjf/
-
动态规划
- 时间复杂度:O(mn)
- 空间复杂度:O(mn)
-
组合数学
- 时间复杂度:O(min(m,n))
- 空间复杂度:O(1)