力扣120题 三角形最小路径和
这题采用dp的方式,当前值加上下面相邻节点的最小值。
class Solution: def minimumTotal(self, triangle): if not triangle:return 0 #边界判断,如果数组为空,即为0 res = triangle[-1] #dp,先缓存最后一组数据,从下往上计算 #print(res) for i in range(len(triangle)-2,-1,-1): #从下往上开始计算 for j in range(len(triangle[i])): #从左往右遍历 res[j] = min(res[j],res[j+1]) + triangle[i][j] #将左右节点最小的再加上当前值进行缓存 #print(res[j],end=',') #print(res) return res[0] if __name__ == '__main__': solution = Solution() triangle = [ [2], [3,4], [6,5,7], [4,1,8,3] ] result = solution.minimumTotal(triangle) print(result)