分析:
问题不大的一道题,但是那个n开始我取的grid第一个元素的长度,所以后面grid长度和n不等的时候
运行导致下标越界,看来好久才看出来
建立状态,当到当前位置的最小值为f[i][j]
状态转移,只有两个方向,f[i][j]=min(f[i-1][j],f[i][j-1])+grid[i][j]
初值f[0][0]=grid[i][0]
答案为f[-1][-1]
再处理一下边界。i=0和j=0的时候,只有一个方向
代码:
1 class Solution(object): 2 def minPathSum(self, grid): 3 """ 4 :type grid: List[List[int]] 5 :rtype: int 6 """ 7 n=len(grid[0]) 8 f=[[0 for i in range(n)] for i in range(len(grid))] 9 f[0][0]=grid[0][0] 10 for i in range(len(grid)): 11 for j in range(n): 12 if i==0 and j!=0: 13 f[i][j]=f[i][j-1]+grid[i][j] 14 elif j==0 and i!=0: 15 f[i][j]=f[i-1][j]+grid[i][j] 16 elif i==j==0: 17 pass 18 else: 19 f[i][j]=min(f[i-1][j],f[i][j-1])+grid[i][j] 20 return f[-1][-1]
标签:elif,int,路径,最小,len,range,grid,64 From: https://www.cnblogs.com/ooooopppp/p/17360225.html