题目:
如下图,从start位置到finish位置(网格m*n),每步只能右移一格或左移一格,问有多少种不同的路径
解题思路:
考虑用递归算法,因为要移动到(i,j)位置,必须先移动到(i-1,j)或者(i,j-1),所以有f(i,j)=f(i-1,j)+f(i,j-1)
代码(python):
class Solution(object):
def uniquePaths(self, m, n):
"""
:type m: int
:type n: int
:rtype: int
"""
output = [[0]*n]*m
print output
for i in range(m):
for j in range(n):
if i==0 or j==0:
output[i][j]=1
else:
output[i][j]=output[i-1][j]+output[i][j-1]
return output[m-1][n-1]