gpt4 book ai didi

algorithm - 后续和

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:18:31 27 4
gpt4 key购买 nike

给定一个整数数组,例如 [1, 2, -3, 1] 查找是否存在总和为 0 的子序列并返回它(例如[1, 2, -3][2, -3, 1])。
检查每个子序列是 O(n^2) 这太低效了。有什么改进的想法吗?

最佳答案

创建一个新数组,每个元素等于前一个元素加上那个元素的总和。

输入:

1  4 -3 -4  6  -7  8 -5

变成:

1  5  2  -2  4  -3  5  0
^ ^

然后在结果数组中查找匹配的元素。

由于这些代表函数整体变化为零的位置,你会发现如果它们的位置是 i 和 k 那么子序列 (i+1, k) 是一个零和子序列。 (在这种情况下,[2:6])。

此外,表中的任何零表示子序列 (0, k) 是零和子序列。对于查找,哈希表或其他快速冲突定位器使得这个 O(N) 执行。

关于algorithm - 后续和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14865688/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com