【发布时间】:2021-12-28 22:37:45
【问题描述】:
我遇到以下问题:
我有 n 个已排序的整数集合 (2
我想知道是否有一个总和(可以有多个),其中每组需要恰好贡献1个数字,等于x
示例 1:
集合 1:{1、2、3、5、7、8}
集合 2:{2, 4, 4, 5, 6, 8, 9, 11 23}
x: 9
对于此示例,可能的总和为 5+4。另一种可能是1+8。
示例 2:
集合 1:{1、1、5、7、8、9}
集合 2:{2、4、5、6、8、9}
x: 8
在此示例中,没有可能的总和。数字 8 在两个集合中都有,但由于所有集合都需要在总和中做出贡献,所以这无关紧要。
我不想强行这样做,所以我认为递归可以使这个过程更快一点,但我真的不知道从哪里开始。
我正在寻找某种思路,尽管伪代码或工作代码(java)将不胜感激:)
【问题讨论】:
-
递归不是为了优化性能。这是关于逻辑简化。
-
遍历第一个集合,确定其他集合是否可以提供剩余部分。可以记住答案(在每个后续集合中),以便下次需要检查该值时,答案就已经知道了。
-
你想要什么样的结果?一个布尔值,是否存在这样的总和或所有可能组合的数量或所有可能组合的列表
-
布尔值就可以了