概述
给出一个数字三角形。 请编一个程序计算从顶至底的某处的一条路径,使该路径所经过的数字的总和最大。
●每一步可沿左斜线向下或右斜线向下走;
●1<三角形行数≤100;
●三角形中的数字为整数0,1,…99;
li =[
[7],
[3,8],
[8,1,0],
[2,7,4,4],
[4,5,2,6,5],
[2,3,4,6,3,1]
]
看到这个题,想到了两种方法:dfs和动态规划.
dfs:
def dfs(x,y):
if x == len(li)-1: #深搜到最底层,直接把该值返回。
return li[x][y]
res = li[x][y]+max(dfs(x+1,y),dfs(x+1,y+1)) #否则直接用当前元素加下一行大的深搜值。
return res
if __name__ == '__main__':
li =
最后
以上就是快乐缘分为你收集整理的python解数字三角形的全部内容,希望文章能够帮你解决python解数字三角形所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复