凑和问题里,递归函数是 dfs(i, sum):正在决定第 个数、已经凑出和 sum。小舟想加备忘录提速,却只开了一维数组,写下 memo[i] = 答案; return memo[i];。同桌小禾说这样会算出错答案。一维备忘录错在哪里?( )
- A. 状态由
i和sum两个参数共同决定:同样是第 3 个数,凑到 7 和凑到 10 是两个不同局面,一维表里它们挤在同一格互相覆盖 - B.
sum的值会超出数组下标范围,应当先把sum排序再存 - C. 一维数组开得太小,至少要开得和
a数组所有数的总和一样大才行 - D. 备忘录的大小必须和递归深度一样,一维数组装不下十万层