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

    问题:

    # 给定一个三角形 triangle ,找出自顶向下的最小路径和。 
    #
    # 每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。也就是说,如果
    # 正位于当前行的下标 i ,那么下一步可以移动到下一行的下标 i 或 i + 1 。
    #
    #
    #
    # 示例 1:
    #
    #
    # 输入:triangle = [[2],[3,4],[6,5,7],[4,1,8,3]]
    # 输出:11
    # 解释:如下面简图所示:
    # 2
    # 3 4
    # 6 5 7
    # 4 1 8 3
    # 自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。

    方法:dp,自底向上,一维dp

    # leetcode submit region begin(Prohibit modification and deletion)
    class Solution:
        def minimumTotal(self, triangle: List[List[int]]) -> int:
            m = len(triangle)
            dp = triangle[-1]
            for i in range(m-2, -1, -1):
                for j in range(i+1):
                    dp[j] = min(dp[j],  dp[j+1]) + triangle[i][j]
            return dp[0]
    # leetcode submit region end(Prohibit modification and deletion)
    时刻记着自己要成为什么样的人!
  • 相关阅读:
    window对象的方法
    JS注册事件
    JS总结
    JS 扩展方法prototype
    Codeforces 460D Little Victor and Set(看题解)
    Codeforces 891C Envy
    Codeforces 251C Number Transformation
    Codeforces 490F Treeland Tour 树形dp
    Codeforces 605C Freelancer's Dreams 凸包 (看题解)
    几何模板
  • 原文地址:https://www.cnblogs.com/demo-deng/p/14801893.html
Copyright © 2011-2022 走看看