Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

三角形最小路径和 #44

Open
JesseZhao1990 opened this issue Jul 23, 2018 · 0 comments
Open

三角形最小路径和 #44

JesseZhao1990 opened this issue Jul 23, 2018 · 0 comments

Comments

@JesseZhao1990
Copy link
Owner

JesseZhao1990 commented Jul 23, 2018

image

/**
 * @param {number[][]} triangle
 * @return {number}
 */
var minimumTotal = function(triangle) {
    for(var j= triangle.length;j>1;j--){
        for(var i=0;i<j-1;i++){
            var rootValue = triangle[j-2][i];
            var leftValue = triangle[j-1][i];
            var rightValue = triangle[j-1][i+1];
            var minValue = getMin(rootValue+leftValue,rootValue+rightValue);

            triangle[j-2][i] = minValue;
        }
    }
    return triangle[0][0]
    
};

function getMin(left,right){
    return left<=right? left:right;
}

方法二:
递归的写法,此种方法效率不高,有重复的计算。

function minimumTotal(triangle){
    
    function loop(triangle,n,index){
        if(n==triangle.length-1){
            return triangle[n][index];
        }
        var left = loop(triangle,n+1,index)+triangle[n][index];
        var right = loop(triangle,n+1,index+1)+triangle[n][index];
        return Math.min(left,right);
    }

    return loop(triangle,0,0)
}

var triangle = [
    [2],
   [3,4],
  [6,5,7],
 [4,1,8,3]
];

console.log(minimumTotal(triangle))

leetcode原题地址:https://leetcode-cn.com/problems/triangle/description/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant