算法-有一个整型数组A,求数组A的子数组,子数组值的和需要在数组A中

发布于 2016-11-05 21:23:26 字数 48 浏览 1132 评论 1

有一个整型数组A,求数组A的子数组,子数组值的和需要在数组A中。求一个高效的算法。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

晚风撩人 2017-04-12 06:39:54

我粗略的想法是这样的,比方我们有一个先排列好的数组A:[1,2,3,4,5]:
因为子数组必须是要两个值,且数组内数字都是正整数,那么只可能从第三个数c3开始,A的子数组之和才能与之相等。然后就从第三个数开始,遍历到最后一个数cn。
对于每个数ci,只有小于它的数才能构成我们要的子集,所以input只能是[c1,c2,...ci-1],然后用动归应该就可以了,选ci-1,不选ci-1...等等
我在想能不能利用一下空间,即把之前的结果存下来加以利用,比方和为cn-1的子集已经全部得到,那么对于cn来说,只要子集中有cn-1都可以替换成cn-1的子集,得到更多的答案,但可能会引入重复项。
总的复杂度是O(n^2)
希望大家提供更有效的算法

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文