数字三角形问题 (动态规划初步)

该博客讨论了一个数字三角形的问题,其中目标是找出从顶部到底部的最大路径和。作者通过定义状态转移方程d(i,j)=max{d(i+1,j), d(i+1,j+1)}+a(i,j),提出了两种解决方案:递推计算和记忆化搜索。这两种方法的时间复杂度均为O(n^2),其中n是三角形的行数。" 79540634,2311635,Android应用层调用硬件驱动:全流程解析,"['Android开发', 'HAL接口', '驱动编程', '系统服务', 'JNI接口']
摘要由CSDN通过智能技术生成

问题描述:

有一个由非负整数组成的三角形,第一行只有一个数,除了最下行之外每个数的左下方和右下方各有一个数。

   从第一行的数开始,每次可以往左下或右下走一格,直到走到最下行,把沿途经过的数全部加起来。如何走才能使得这个和尽量大?

如下图:

             1

          3   2

       4  10  1

    4   3   2   20


思考:把当前的位置(i,j)看成一个状态,然后定义状态(i,j)的指示函数d(i,j)为从格子(i,j)出发时能得到的最大和(包括格子(i,j)本身的值)。在这个状态定义下,原问题的解释d(1,1)。

状态状态转移:从格子(i,j)出发有两种决策。如果往左走,则走到(i+1,j)后需要求”从(i+1,j)出发后能得到的最

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值