这两题 都是给定 Nums =[1 2 3] target = 4, 用nums 求和构建 target , 求出可能结果
不同点:
39 题: 认为 [1,1,2] 和 [2,1,1] 是重复结果
377 认为 [1,1,2] 和 [2,1,1] 是不同的结果。
因此画出两个题目的dfs tree:
39 题的 tree 里可以看出, 当放了[1,1 ]后 sum =2, 当放了 [2] 后, sum =2, 虽然两个sum 相等,但下面的sub tree 是不同的,得到的结果也不同,因此不能用记忆化搜索
377 题 [1,1] 和 [2] 下面的sub tree 结构完全一样, 因此 计算出 [1,1] 结果后, [2] 的结果就可以重复使用 [1,1] 的结果了,这就是记忆化搜索, 记忆化搜索本质需要 sub tree 一样。