【发布时间】:2021-10-14 01:23:27
【问题描述】:
给定 2 个数组 A 和 B,从 A 中选择子序列 X,从 B 中选择 Y,sum(X) 应该等于 sum(Y)。我们必须找到可以选择这种类型子序列的方法的数量。
数组中的元素个数最多为 100 数组中的值 -100 到 100
我的方法:生成两个数组的所有子序列,取它们的总和,对于每个可能的总和,将我们在数组 A 中找到的子序列的数量与我们在数组 B 中找到的具有该总和的子序列的数量相乘。
这是非常低效的,因为生成所有子序列将是 O(2^100)
谁能帮我解决这个问题?我不需要代码,算法的想法会很有帮助。
【问题讨论】:
-
子序列的数量在2^100的数量级。那是真实的。不是 O(2^100)。 O(2^100) 并不代表你认为的那样。
标签: algorithm subsequence