动态规划入门-Triangle

动归解题的一般思路:

  1. 将原问题分解成多个子问题。子问题都解决了,原问题就解决了
  2. 用动态规划解题时,我们往往将和子问题相关的各个变量的一组取值,称之为一个“状态”。一个“状态”对应于一个或多个子问题,所谓某个“状态”下的“值”,就是这个“状态”所对应的子问题的解
  3. 确定初始状态
  4. 确定状态转移方程

    eg:leetcode120. Triangle
    Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent numbers on the row below.

思路:从下往上递推,最后一行除外,每一行的每个点的最小值等于自身加上下面一行对应的左右两个点的最小值,自下往上,最顶部的即是所企业

var minimumTotal = function(triangle) {
    var minLen = triangle[triangle.length - 1];
    for(var i = triangle.length - 2; i >= 0; i--) {
        for(var j = 0; j <= i; j++) {
            minLen[j] = Math.min(minLen[j] , minLen[j + 1]) + triangle[i][j]
        }
    }
    return minLen[0]
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值