120. Triangle
题目来源
https://leetcode.com/problems/triangle/description/
题意分析
给定一个三角形矩阵,找到从上到下的最短路,每一步只能走下一行的邻接的两个数
题目思路
这是一道非常基础的DP,
采用动态规划的思想,从下往上处理,有
triangle[i][j] += min(triangle[i+1][j+1], triangle[i+1][j])
最后 triangle[0][0]
即为所求结果
代码
# 用Python实现
class Solution:
def minimumTotal(self, triangle):
"""
:type triangle: List[List[int]]
:rtype: int
"""
for i in reversed(range(0,len(triangle)-1)):
for j in range(i+1):
triangle[i][j] += min(triangle[i+1][j+1], triangle[i+1][j])
return triangle[0][0]