ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

LeetCode 120 Triangle Writeup

2021-02-28 10:57:05  阅读:171  来源: 互联网

标签:Triangle Writeup len 120 range triangle col dp row


三角形最小路径和

两种解决边界问题的方案

解法一

class Solution:
    def minimumTotal(self, triangle: List[List[int]]) -> int:
        rownum = len(triangle)
        dp = [[float("inf") for col in range(rownum + 1)] for row in range(rownum)]

        for row in range(rownum):
            for col in range(len(triangle[row])):
                dp[row][col + 1] = triangle[row][col]

        for row in range(1, rownum):
            for col in range(1, (len(triangle[row]) + 1)):
                dp[row][col] += min(dp[row - 1][col], dp[row - 1][col - 1])

        return min(dp[-1])

解法二
不使用额外空间

class Solution:
    def minimumTotal(self, triangle: List[List[int]]) -> int:
        for row in range(1, len(triangle)):
            for col in range(len(triangle[row])):
                if col == 0:
                    triangle[row][col] += triangle[row - 1][col]
                elif (col + 1) == len(triangle[row]):
                    triangle[row][col] += triangle[row - 1][col - 1]
                else:
                    triangle[row][col] += min(triangle[row - 1][col],
                                              triangle[row - 1][col - 1])

        return min(triangle[-1])

复杂度分析

  1. 时间复杂度:两种方法都是O(n^2),n为矩阵行数
  2. 空间复杂度:O(n^2)和O(0)

标签:Triangle,Writeup,len,120,range,triangle,col,dp,row
来源: https://blog.csdn.net/qq_41529090/article/details/114211649

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有