题解 | #三角形最小路径和#

三角形最小路径和

http://www.nowcoder.com/practice/c9d44b73dc7c4dbfa4272224b1f9b42c

前端初学者,刚学动态规划的代码(较为繁琐)

  • dp[i][j]表示以i,j位置的点为起点到达最低端的最小路径和。
  • 状态方程: dp[i][j] = min(triangle[i][j]+dp[i+1][j],triangle[i][j]+dp[i+1][j+1])
  • 边界条件:dp[n - 1][i] = triangle[n - 1][i];(三角形最下面一行)
  • dp[0][0]即为所求
function minTrace( triangle ) {
    // write code here
    if(triangle.length == 0 || !triangle) return 0
    let n = triangle.length;
    //创建二维数组
    let dp = new Array(n);
    for(let i = 0; i< n; i++){
        let len = triangle[i].length
        dp[i] = new Array(len);
    }
    for(let i = 0; i< n; i++){
        dp[n - 1][i] = triangle[n - 1][i];
    }
    for(let i = n -2; i>= 0; i--){
        for(let j = 0; j< triangle[i].length; j++){
            dp[i][j] = Math.min(triangle[i][j]+dp[i+1][j],triangle[i][j]+dp[i+1][j+1])
        }
    }
    return dp[0][0]
    
}
module.exports = {
    minTrace : minTrace
};





全部评论

相关推荐

uu们,拒offer时hr很生气怎么办我哭死
爱睡觉的冰箱哥:人家回收你的offer,或者oc后没给你发offer的时候可不会愧疚你,所以你拒了也没必要愧疚他。
点赞 评论 收藏
分享
求offer的大角牛:不吃香菜
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-04 14:23
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务