【发布时间】:2018-02-14 03:15:39
【问题描述】:
我有一个列表,其中(随机)包含 5 到 10 个项目。列表中的第一个 int 始终为 0,其他所有的都是随机正数。它可能看起来像这样:
0 10 50 45 80 5 35
该程序的目标是将列表中的项目视为空格,当您移动到下一个项目时,总和会相加。该人从 0 开始,始终可以向右移动一个空格或跳过一个空格并降落在下一个空格上。例如,对于上面的一个,我可以从 0 到 10,或者从 0 到 50 进行第一步。然后我可以从 50 到 45 或从 50 到 80 等等。
我想找出一种递归算法来遍历这些并找到获得总和最低的最后一项的方法。我应该经历所有可能的组合还是有更简单的方法来做到这一点?它是否与检查每回合可能移动的值并选择较低的值有关?
【问题讨论】:
-
这可能是cs.stackexchange.com 的问题。无论如何,您应该查找有向无环图 (DAG) 的最短路径算法。您可以简单地将您的序列和允许的移动构建为 DAG,并使用任意数量的有据可查的算法。
标签: python algorithm list math