LintCode:数字三角形

10人阅读 评论(0) 收藏 举报

描述:

给定一个数字三角形,找到从顶部到底部的最小路径和。每一步可以移动到下面一行的相邻数字上。

样例:
比如,给出下列数字三角形:
[
     [2],
    [3,4],
   [6,5,7],
  [4,1,8,3]
]

从顶到底部的最小路径和为11 ( 2 + 3 + 5 + 1 = 11)。

分析:注意给出的测试用例每行的长度是不同的,之前没意识到这点,测试的时候老是提醒我数组越界

public class Solution {
    /**
     * @param triangle: a list of lists of integers
     * @return: An integer, minimum path sum
     */
    public int minimumTotal(int[][] triangle) {
        if(triangle.length<2) return triangle[0][0];
        int[][] dp=new int[triangle.length][triangle[triangle.length-1].length];
        dp[0][0]=triangle[0][0];
        for(int i=1; i<triangle.length; i++){
            dp[i][0]=dp[i-1][0]+triangle[i][0];
        }
        for(int i=1; i<triangle.length; i++){
            for(int j=1; j<triangle[i].length; j++){
                if(j!=i){
                    dp[i][j]=Math.min(dp[i-1][j]+triangle[i][j], dp[i-1][j-1]+triangle[i][j]);
                }
                else{
                    dp[i][j]=dp[i-1][j-1]+triangle[i][j];
                }
            }
        }
        int res=dp[dp.length-1][0];
        for(int j=1; j<dp[0].length; j++){
            if(res>dp[dp.length-1][j]){
                res=dp[dp.length-1][j];
            }
        }
        return res;
    }
}
查看评论

lintcode triangle 数字三角形

问题描述lintcode笔记代码1设置buff[i][j]为:以元素(i,j)结尾的最小路径和。 buff[i][j]应该是buff[i-1][j-1]和buff[i-1][j]中的较小值再加上当前...
  • waltonhuang
  • waltonhuang
  • 2016-07-26 17:19:59
  • 1151

lintcode-数字三角形-109

给定一个数字三角形,找到从顶部到底部的最小路径和。每一步可以移动到下面一行的相邻数字上。 样例 比如,给出下列数字三角形: [      [2],     [3,4], ...
  • ljlstart
  • ljlstart
  • 2015-09-09 21:36:37
  • 639

LintCode Triangle 数字三角形

中文描述: 给定一个数字三角形,找到从顶部到底部的最小路径和。每一步可以移动到下面一行的相邻数字上。样例 比如,给出下列数字三角形: [ [2], [3,4], [...
  • wutingyehe
  • wutingyehe
  • 2015-07-11 22:41:07
  • 1792

LintCode: 109. 数字三角形 Java

题目大意给定一个数字三角形,找到从顶部到底部的最小路径和。每一步可以移动到下面一行的相邻数字上。...
  • qq_25024883
  • qq_25024883
  • 2017-12-04 16:03:19
  • 126

数字三角形!

例题:数字三角形 (ai2760)问题描述73 88 1 02 7 4 44 5 2 6 5上图给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到...
  • leonliu7558168
  • leonliu7558168
  • 2011-04-15 21:47:00
  • 2265

Lintcode 109.数学三角形

111111111111111
  • koujiaodahanyuan
  • koujiaodahanyuan
  • 2017-10-23 20:48:17
  • 43

LintCode刷题——数字三角形

描述: 给定一个数字三角形,找到从顶部到底部的最小路径和。每一步可以移动到下面一行的相邻数字上。 样例 比如,给出下列数字三角形: [ [2], [3,4], ...
  • kingslave1
  • kingslave1
  • 2017-10-09 09:36:56
  • 79

[LintCode 109] 数字三角形(Python)

题目描述给定一个数字三角形,找到从顶部到底部的最小路径和。每一步可以移动到下面一行的相邻数字上。注意事项 如果你只用额外空间复杂度O(n)的条件下完成可以获得加分,其中n是数字三角形的总行数。样例 ...
  • yurenguowang
  • yurenguowang
  • 2017-08-30 14:46:48
  • 791

LintCode 数字三角形

1.描述 给定一个数字三角形,找到从顶部到底部的最小路径和。每一步可以移动到下面一行的相邻数字上。 注意事项 如果你只用额外空间复杂度O(n)的条件下完成可以获得加分,其中n是数字...
  • Bloodyrabbits
  • Bloodyrabbits
  • 2017-11-02 21:46:14
  • 81

LintCode做题记录- 数字三角形

LintCode做题记录- 数字三角形题目:给定一个数字三角形,找到从顶部到底部的最小路径和。每一步可以移动到下面一行的相邻数字上。示例:[ [2], [3,4], [6,5,...
  • qq_26971803
  • qq_26971803
  • 2016-08-06 12:46:26
  • 748
    个人资料
    持之以恒
    等级:
    访问量: 801
    积分: 258
    排名: 26万+
    文章分类