1. 线性DP 120. 三角形最小路径和
经典问题:
120. 三角形最小路径和 https://leetcode-cn.com/problems/triangle/
func minimumTotal(triangle [][]int) int {
n := len(triangle)
dp := make([][]int,n)
for i:=0;i<n;i++{
dp[i] = make([]int,i+1)
}
dp[0][0] = triangle[0][0]
for i:=1;i<n;i++{
for j:=0;j<=i;j++{
if j==0 {
dp[i][j] = dp[i-1][j]+triangle[i][j]
}else if j==i{
dp[i][j] = dp[i-1][j-1] + triangle[i][j]
}else{
dp[i][j] = MIN(dp[i-1][j-1]+triangle[i][j],dp[i-1][j]+triangle[i][j])
}
}
}
res := dp[n-1][0]
for j:=0;j<=n-1;j++{
res = MIN(res,dp[n-1][j])
}
return res
}
func MIN(i,j int) int{
if i<j{
return i
}else{
return j
}
}
浙公网安备 33010602011771号