令 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