动态规划——数字三角形

本文通过介绍北大的POJ1163题目——数字三角形,讲解了一个动态规划的入门实例。作者讨论了如何使用二维数组表示数字三角形,并通过递归和递推方法寻找从顶部到底部的最大路径和。在优化过程中,减少了重复计算,避免栈溢出,并最终通过一维数组实现空间优化,达到问题最优解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        学习算法,个人觉得还是对照着例题来理解效果做好,算法概念太学术味太浓,个人不太喜欢。今天介绍一个动态规划入门例题。这道题来自北大的POJ。题目如下:

 

数字三角形(POJ1163)

    

在上面的数字三角形中寻找一条从顶部到底边的路径,使得路径上所经过的数字之和最大。路径上的每一步都只能往左下或 右下走。只需要求出这个最大和即可,不必给出具体路径。 三角形的行数大于1小于等于100,数字为 0 - 99

    输入格式:

    5      //表示三角形的行数    接下来输入三角形

    7

    3   8

    8   1   0

    2   7   4   4

    4   5   2   6   5

    要求输出最大和

 

我们来分析一下这道题该怎么做

首先肯定要一个二维数组来存放三角形

然后我们用D( r, j) 来表示第 r 行第  j 个数字(r , j1开始算)

我们用max

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值