我正在努力解决project euler problem 18。 http://projecteuler.net/problem=18 我尝试了一个贪婪的算法,python在三角形的底部工作。 然后我向上移动一行并找到最大的路线,使用贪婪的算法并尝试连接最大的路线,但它不起作用。您是否有任何提示可以让我走上正轨,而无需解决问题。
这是功能:
def greedy(i):
if i%15==0:
a=[(b[i-15],i-15),(b[i-14],i-14)]
a=sorted(a)
a=a[-1]
else:
a=[(b[i-15],i-15),(b[i-16],i-16),(b[i-14],i-14)]
a=sorted(a)
a=a[-1]
return a
干杯
答案 0 :(得分:4)
你听说过Dynamic Programming吗?
考虑这个问题。什么使路线最好?最后一步与前一步之间有什么关系吗?另外,看看这个贪婪算法没有给出正确答案的三角形:
1
2 3
9 1 2
1 1 2 4