一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。

机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。

问总共有多少条不同的路径?

思路

  1. 组合数,C(m + n - 2, Math.min(m, n) - 1)
1
2
3
4
5
6
7
8
9
var uniquePaths = function (m, n) {
const total = m + n - 2
const k = Math.min(m, n) - 1
let result = 1
for (let i = 1; i <= k; ++i) {
result = (result * (total - i + 1)) / i
}
return result
}