使用Python的Euler#18

时间:2012-04-23 13:38:35

标签: python

我正在努力解决project euler problem 18http://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

干杯

1 个答案:

答案 0 :(得分:4)

你听说过Dynamic Programming吗?

考虑这个问题。什么使路线最好?最后一步与前一步之间有什么关系吗?另外,看看这个贪婪算法没有给出正确答案的三角形:

      1
    2   3
  9   1   2
1   1   2   4