我正在尝试编写一个问题,我必须找到给定数组的给定数组的连续子数组。我想要做的是使用从0到n的循环i和从i到n的另一个循环,并使用它来计算所有子阵列总和。但我认为解决方案的时间复杂性可以进一步降低。我只是无法弄清楚如何。问题可以转换为DP吗? 我需要找到子阵列的总数。
答案 0 :(得分:1)
For positive numbers only
将变量curr_sum
初始化为第一个元素。 curr_sum
表示sum of current subarray
。从第二个元素开始,将所有元素逐个添加到curr_sum
。如果curr_sum
等于sum
,则打印解决方案。如果curr_sum
超过sum
,则在curr_sum
大于sum
时删除尾随元素。
这个算法将给出第一个正确的答案。可能存在多个子阵列作为答案。 ``
复杂性:O(n)