zoukankan      html  css  js  c++  java
  • 最小路径和

    问题:

    # 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 
    #
    # 说明:每次只能向下或者向右移动一步。
    #
    #
    #
    # 示例 1:
    #
    #
    # 输入:grid = [[1,3,1],[1,5,1],[4,2,1]]
    # 输出:7
    # 解释:因为路径 1→3→1→1→1 的总和最小。

    方法:动态规划

    # leetcode submit region begin(Prohibit modification and deletion)
    class Solution:
        def minPathSum(self, grid: List[List[int]]) -> int:
            if not grid or not grid[0]:
                return 0
            m, n = len(grid), len(grid[0])
            dp = [[0]*n for _ in range(m)]
            dp[0][0] = grid[0][0]
            for i in range(1, m):
                dp[i][0] = dp[i-1][0] + grid[i][0]
            for j in range(1, n):
                dp[0][j] = dp[0][j-1] + grid[0][j]
            for i in range(1, m):
                for j in range(1, n):
                    dp[i][j] = min(dp[i-1][j], dp[i][j-1]) + grid[i][j]
            return dp[m-1][n-1]
    # leetcode submit region end(Prohibit modification and deletion)
    时刻记着自己要成为什么样的人!
  • 相关阅读:
    pandas取值
    pandas 基本操作
    Pandas三个数据结构
    pandas.Series
    scipy线性模块liner(linalg)
    numpy meshgrid函数
    scipy插值interpolation
    scipy优化器optimizer
    scipy积分 integral
    8086汇编 Loop 指令
  • 原文地址:https://www.cnblogs.com/demo-deng/p/14801713.html
Copyright © 2011-2022 走看看