算法 -- 数字三角形之动态规划

好久没有好好写算法啦,因此今天晚上就思考实现老师说的一道算法题目: 用动态规划求解数字三角形.

下面简单描述下题目含义:

数字三角形中的数字要求为不超过100的非负整数.题目规定从最顶层开始往下走,选择一条路径,这条路径要求每一步沿着左斜线或者右斜线走,并且路径上的数字之和为最大值.

例如下面这样一个三角形:
1. 7
2. 3 8
3. 8 1 0
4. 2 7 7 4
5. 5 5 2 6 5
它有5行数据,其路径数字和最大值为30.

注:原题目的三角形为等边三角形,我们在实际处理中,将其记录为直角三角形.这时候它的每一步就是沿下走或者沿右斜线走.

思考 : 如何解决这样一个问题?

既然要求最大路径和,那么我们计算每一行每一个元素到达起点的数字和,并将其存储下来.最后进行比较最后一行的路径和信息即可实现.

参考代码

/*************************************************************************
 **     >  Name : num_triangle.c
 **     > Author: LiYingXiao (Sweethreart502) 
 **     >  Mail : liyingxiao502@gmail.com
 **     >  Blog : http://blog.csdn.net/u013166575
 **     &
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值