我在一次采访中被问到以下问题,我无法给出最佳答案。
问题:编写一个程序,找出总和为 S 的最大连续子数组的长度。给定一个可变大小的数组和一个整数。
输入: 1. 一个可变大小的数组,它只能有 {-1, 0, 1} 个元素。
示例:A[] = {1, 0, 0, 1, -1, 1, 1, 1, 1}
- 一个整数 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:我提出的问题没有版权问题。