【发布时间】:2021-01-02 06:20:53
【问题描述】:
您将如何从给定的 N、R、S 数字集合中测试所有可能的组合,以便它们相加为给定的最终数字,而您只能使用每个集合中的 1 个数字?
一个简单的例子:
要添加的数字集:
N = {1,2,3,...}
R = {4,5,6,...}
S = {7,8,9,...}
期望的结果:加起来等于 X 的所有数字,所以当 X = 12 时输出将是
[1,4,7]
【问题讨论】:
-
对于每对 (n, r),其中 n+r 小于 X,检查 X-(n+r) 是否在 S 中。如果 S 在索引中,这应该在 O (n * n * log n).
-
@SaiBot 使用哈希,可以在
O(n*n)中。
标签: algorithm search combinations subset-sum