【发布时间】:2021-06-24 15:40:39
【问题描述】:
例如,如果我们有以下问题:
给定一组硬币 - [1,2,5] 和一个数量 - 11。找出制作 11 所需的最小硬币数量。
我们可以使用递归来探索状态空间。例如,根为空,我们从硬币数组的索引 0 开始。从根开始,我们可以选择取硬币 1(硬币数组的索引 0)或不取硬币 1 并继续递归探索状态空间。
但是我们如何选择用于记忆的变量呢?是否有任何已定义的通用选择方式?
在这个问题中,直观地,我选择了以下变量用于记忆:
元组键:(硬币总和,我们正在探索的硬币数组的索引) 价值:硬币数量
但它不起作用。
【问题讨论】:
-
必须递归完成吗?
-
我只是想用字典来实现对问题的记忆。只是希望了解人们将如何继续选择将哪个变量用作记忆的“关键”。
标签: algorithm recursion optimization data-structures memoization