中级农民
- 积分
- 196
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2017-1-10
- 最后登录
- 1970-1-1
|
完整代码-我的- def minPathSum(grid):
- n = len(grid)
- m = len(grid[0])
- dp = [[0 for x in range(m)] for x in range(n)]
- dp[0][0] = grid[0][0]
- #print("dp[0][0] is " + str(dp[0][0]))
- for i in range(1, n):
- dp[i][0] = dp[i - 1][0] + grid[i][0]
- # print("when i equal " + str(i))
- # print("dp[i - 1][0] is " + str(dp[i - 1][0]))
- # print("grid[i][0] is " + str(grid[i][0]))
- # print("dp[i][0] is " + str(dp[i][0]))
- for j in range(1, m):
- dp[0][j] = dp[0][j - 1] + grid[0][j]
- # print("when j equal " + str(j))
- # print("dp[0][j-1] is " + str(dp[0][j-1]))
- # print("grid[0][j] is " + str(grid[0][j]))
- # print("dp[0][j] is " + str(dp[0][j]))
- # print(dp)
- for i in range(1, n):
- for j in range(1, m):
- dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]) + grid[i][j]
- return dp[-1][-1]
- grid = [[1,3,1],[1,5,1],[4,2,1]]
- print(minPathSum(grid))
复制代码
答案的-
- def minPathSum(grid):
- n = len(grid)
- m = len(grid[0])
- dp = [[0 for x in range(m)] for x in range(n)]
- dp[0][0] = grid[0][0]
- for i in range(1, m):
- dp[0][i] = dp[0][i - 1] + grid[0][i]
- # print("when i equal " + str(i))
- # print("dp[0][i - 1] is " + str(dp[0][i - 1]))
- # print("grid[0][i] is " + str(grid[0][i]))
- # print("dp[0][i] is " + str(dp[0][i]))
- for i in range(1, n):
- dp[i][0] = dp[i - 1][0] + grid[i][0]
- # print("when i equal " + str(i))
- # print("dp[i - 1][0] is " + str(dp[i - 1][0]))
- # print("grid[i][0] is " + str(grid[i][0]))
- # print("dp[i][0] is " + str(dp[i][0]))
- for i in range(1, n):
- for j in range(1, m):
- dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]) + grid[i][j]
- return dp[-1][-1]
- print(minPathSum([[1,3,1],[1,5,1],[4,2,1]]))
复制代码
|
|