【发布时间】:2019-07-06 18:38:38
【问题描述】:
令 A 是一个包含 n 个不同正整数的排序数组。令 x 为正整数,使得 x 和 2x 都不在 A 中。
描述一种有效的算法来找出 A 中大于 x 且小于 2x 的整数个数
算法的复杂度是多少?有人可以在不使用库的情况下编写伪代码吗?
我知道这可以通过线性时间复杂度来完成,但可以修改二进制搜索来实现这一点。 以下是我想出的线性时间复杂度解决方案
def find_integers(A, x):
integers = 0
for element in A:
if element > x and element < 2*x:
integers += 1
return integers
【问题讨论】:
-
我不认为我们可以通过具有线性时间复杂度的二分搜索来实现。
标签: algorithm time-complexity binary-search analysis