返回信息流leetcode 39组合总和
leetcode 322零钱兑换
为什么322中的循环改变成39中的,结果就不对了呢?
39中减少了相同的分支,322中dfs形成的树应该和39中一样啊
这是一条镜像帖。来源:北邮人论坛 / java / #66001同步于 2021/10/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
leetcode 39 和 322
vans
2021/10/22镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
因为这两个题目所需要的排列是不一样的,第二个排列如果使用 for(int i = begin; i < coins.length; i++) 会漏掉一些 case,提前减少的分支,后面说不定会用到
数组的输入顺序会对使用 for(int i = begin; i < coins.length; i++) 有影响,你可以使用这两个不同的 case 感受下
[408,419,186,83]
6249
以及
[419,408,186,83]
6249
【 在 wr512793340 的大作中提到: 】
: 数组的输入顺序会对使用 for(int i = begin; i < coins.length; i++) 有影响,你可以使用这两个不同的 case 感受下
: [408,419,186,83]
: 6249
: ...................
这两道题都是求组合数,不考虑顺序,那么dfs形成的树的结构相同,如果正确的话,这棵树不考虑顺序,已经表示了所有的情况,为什么会漏掉一些case呢?
你可以使用我给你的那个例子画一下两者的过程,或者把他的过程打出来就可以感受到了。我也不是非常明白了,但是确实会漏掉一些 case 导致 输出的不是最小值。