lintcode 114. 不同的路径unique-paths
有一个机器人的位于一个 m × n 个网格左上角。机器人每一时刻只能向下或者向右移动一步。机器人试图达到网格的右下角。问有多少条不同的路径?
代码
def uniquePaths(self, m, n):
# write your code here
dp=[[0]*n for i in range(m)]
for i in range(0,m,1):
for j in range(0,n,1):
if i==0 and j==0:
dp[i][j]=1
else:
dp[i][j]=dp[i-1][j]+dp[i][j-1]
return dp[m-1][n-1]
想法
动态规划:dp[i][j]=dp[i-1][j]+dp[i][j-1]
得以实现是因为:机器人每一时刻只能向下或者向右移动一步。
lintCode 115
不同的路径" 的跟进问题:现在考虑网格中有障碍物,那样将会有多少条不同的路径?网格中的障碍和空位置分别用 1 和 0 来表示。
Code
def uniquePathsWithObstacles(self, obstacleGrid):
dp = [[0]*len(obstacleGrid[0]) for i in range(len(obstacleGrid))]