【发布时间】:2020-01-22 22:33:23
【问题描述】:
我得到了两个数组 A 和 B,其中 A 完全用正整数填充,B 是 A,其中一些恒定数量的元素变成了零。我还得到了一个任意函数,它接受一个数组,并给出从 a 到 b 的 O(1) 中数组的总和,其中 a 和 b 是数组中的索引。
我应该设计一种算法,在 O(log(n)) 时间内将数组 B 转换为数组 A,但我很难理解这是如何实现的。
我想出了一个 O(n) 的解决方案,我只需将 A 的索引与 B 的索引进行比较。如果它们相同,我继续循环,如果它们不同,我更新B[i] 的值为 A[i]。我看不到改善这一点的方法,尤其是在数组未排序的情况下。
【问题讨论】:
-
你得到的求和函数是 O(1) 吗?
-
是的,我会补充的
标签: arrays algorithm performance complexity-theory