110. 最小路径和
给定一个只含非负整数的m*n网格,找到一条从左上角到右下角的可以使数字和最小的路径
code
def minPathSum(self, grid):
# write your code here
m=len(grid)
n=len(grid[0])
if grid is None or m==0 or n==0:
return 0
old,now=0,0
dp=[[0]*n for i in range(2)]
for i in range(0,m,1):
old=now
now=1-now
for j in range(0,n,1):
if i==0 and j==0:
dp[now][j]=grid[i][j]
continue
dp[now][j]=grid[i][j]
t1,t2=float('inf'),float('inf')
if i>0:
t1=dp[old][j]
if j>0:
t2=dp[now][j-1]
if t1<t2:
dp[now][j]=dp[now][j]+t1
else:
dp[now][j]=dp[now][j]+t2
return