【发布时间】:2012-02-14 11:04:10
【问题描述】:
我正在努力解决一个与Euler Problem 215 有点相似的问题。我想我可以在不解释整个问题和/或我解决问题的完整方法的情况下解释这一点。
现在我正在使用 RT([Arraylist of numbers], int i) 进行递归调用。根据该技术,我想保存结果,所以如果当 RT 询问相同的问题时,我可以简单地查找答案,而不是重复出现,直到达到基本情况。
只是为了说明 RT([3, 7.5, 10.5, 15], 2)。在递归中,右边在右边递增。 Arraylist 用于确定还需要调用基本情况的其他内容。
通常,我对动态编程的理解通常使用二维数组,其中使用所谓的参考点保存和存储结果。如果它类似于 RT(int x, int y),那就太好了。但是我的问题呢?
我想我可以将 ArrayList 更改为字符串 37510515,然后更改为一些使用的 ASCII 数字或数字本身。但是我希望我可以像使用 ArrayList 作为键的 HashMap 一样处理这个问题,但是这个 HashMap 的缺陷只适用于一个值(我知道我可以链接,但是在存储结果时如何工作呢?轻松跟踪调用它的“int i”是什么?)
简而言之,谁能帮我想出一种方法来存储结果,其中 ArrayList 和 int 作为两个引用?
提前致谢!
【问题讨论】:
-
数字的arraylist是否总是以相同的顺序排列?那有关系吗?如果没有,那么 b-tree 将起作用,并将读取保持在最低限度。如果幸运的话,您会进行 1 次查找。在最坏的情况下,您必须(在您的情况下)运行树的 5 个级别。
标签: algorithm data-structures combinations dynamic-programming