经典问题:

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
    }
}

  

相关文章:

  • 2021-09-26
  • 2021-11-15
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-20
猜你喜欢
  • 2022-01-01
  • 2021-09-14
  • 2021-12-01
  • 2021-10-08
  • 2021-06-10
相关资源
相似解决方案