leetcode leetcode 120. Triangle

https://leetcode.com/problems/triangle/submissions/
解題思路

sumList用來保存上一層路徑的求和結果,nextSumList保存當前層的求和結果,nextSumList[i] = row[i] + min(sumList[i-1], sumList[i]),當前值加上 上一層兩個路徑最小的和。

代碼
Python

class Solution:
    def minimumTotal(self, triangle: List[List[int]]) -> int:
        sumList = [0]
        nextSumList = []
        for row in triangle:
            for i in range(len(row)):
                if i == 0:
                    nextSumList.append(sumList[0] + row[i])
                elif i == len(row) - 1:
                    nextSumList.append(sumList[i-1] + row[i])
                else:
                    nextSumList.append(min(sumList[i-1], sumList[i])+row[i])
            sumList = nextSumList
            nextSumList = []
        return min(sumList)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章