我在一次面试中被问到以下问题,但我无法给出最优的答案。
问题:编写一个程序,可以找到总和为S的最大连续子数组的长度。给定一个可变大小的数组和一个整数。
输入:1.可变大小的数组,仅包含{-1,0,1}元素。
示例:A[] = {1, 0, 0, 1, -1, 1, 1, 1, 1}
2.一个整数S,
示例:S = 4
输出:8
说明:A的最大连续子数组,其总和为S=4:{1, 0, 0, 1, -1, 1, 1, 1}或{0, 0, 1, -1, 1, 1, 1, 1}
限制条件:应在O(N)内完成。
我已经解决了这个问题,但无法满足时间复杂度。有人能帮忙提供一个可以在O(N)内解决此问题的解决方案吗?
PS:我提出的问题没有版权问题。
问题:编写一个程序,可以找到总和为S的最大连续子数组的长度。给定一个可变大小的数组和一个整数。
输入:1.可变大小的数组,仅包含{-1,0,1}元素。
示例:A[] = {1, 0, 0, 1, -1, 1, 1, 1, 1}
2.一个整数S,
示例:S = 4
输出:8
说明:A的最大连续子数组,其总和为S=4:{1, 0, 0, 1, -1, 1, 1, 1}或{0, 0, 1, -1, 1, 1, 1, 1}
限制条件:应在O(N)内完成。
我已经解决了这个问题,但无法满足时间复杂度。有人能帮忙提供一个可以在O(N)内解决此问题的解决方案吗?
PS:我提出的问题没有版权问题。