数字三角形

def Triangel(a,n):
    #d[i][j]即为状态,从格子(i,j)出发能得到的最大值
    d=[[0 for col in range(n+1)] for row in range(n+1)] 
    for i in range(n+1):
        d[n][i]=a[n][i]
    #双重循环自下而上计算最大和
    i=n-1
    while(i>=0):
        for j in range(i+1):
            d[i][j]=a[i][j]+max(d[i+1][j],d[i+1][j+1]) #状态转移方程
        i-=1
    print(d[0][0])


#test
a=[[1],[3,2],[4,10,1],[4,3,2,20]]   #数字三角形数据
n=3     #层数,从0开始计数
Triangel(a,n)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值