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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
func uniquePaths(_ m: Int, _ n: Int) -> Int { pathMatrix = Array(repeating: Array(repeating: 0, count: n+1), count: m+1) return pathMatrix(m, n) } private var pathMatrix: [[Int]]! private func pathMatrix(_ m: Int, _ n: Int) -> Int { if m <= 0 || n <= 0 { return 0 } if m < 2 || n < 2 { pathMatrix[m][n] = 1; return 1 } if pathMatrix[m-1][n] == 0 { pathMatrix[m-1][n] = pathMatrix(m-1, n) } if pathMatrix[m][n-1] == 0 { pathMatrix[m][n-1] = pathMatrix(m, n-1) } return pathMatrix[m-1][n] + pathMatrix[m][n-1] } |
❤ 点击这里 -> 订阅《PAT | 蓝桥 | LeetCode学习路径 & 刷题经验》by 柳婼