首页 > 其他 > 详细

64. Minimum Path Sum

时间:2020-09-04 08:26:33      阅读:57      评论:0      收藏:0      [点我收藏+]

Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path.
Note: You can only move either down or right at any point in time.

Example:
Input:
[
[1,3,1],
[1,5,1],
[4,2,1]
]

Output: 7
Explanation: Because the path 1→3→1→1→1 minimizes the sum.

class Solution:
    def min_path_sum(self, grid):
        m = len(grid)
        n = len(grid[0])
        for i in range(n-1):
            grid[0][i+1] += grid[0][i]
        for j in range(m-1):
            grid[j+1][0] += grid[j][0]
        for i in range(m-1):
            for j in range(n-1):
                grid[i+1][j+1] += (grid[i][j+1] if grid[i][j+1] < grid[i+1][j] else grid[i+1][j])
        return grid[m-1][n-1]


m_n = [
  [1, 3, 1],
  [1, 5, 1],
  [4, 2, 1]
]
print(Solution().min_path_sum(m_n))

64. Minimum Path Sum

原文:https://www.cnblogs.com/world-0-1/p/13610810.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!