我在准备考试时遇到了这个问题。
给定两个数字数组 a1,..., an 和 b1,....,bn,其中每个数字为 0 或 1,找到最大跨度 (i,j) 的最快算法使得 , ai + ai+1 +....+aj = bi + bi+1 +....+bj 或报告没有这样的跨度。
(A) 如果允许散列,则需要 O(3^n) 和 omega(2^n) 时间。
(B) 在关键比较模式下需要 O(n^3) 和 omega(n^2.5) 和时间
(C) 占用 theta(n) 时间和空间
(D) 仅当 2n 个元素之和为偶数时才花费 O(square-root(n)) 时间。