我被要求为这个问题编写算法:给定数组 A,我们想知道数组中是否存在 U+L=K 的任何两个元素 U 和 L
我这样写我的算法:
while(first<last)
{
if(arr[first]+arr[last]==k)
return true
else if(arr[first]+arr[last]<k)
last=last-1;
else
first++;
}
return false
}
但问题是这个算法的运行时间是多少?是 O(nlogn) 吗?如果是,为什么?如果不是,我如何在 O(nlogn) 中实现它?