我正在尝试编写一个线性时间算法o(n),它给出一个表a[0..n-1](用升序自然值填充)来检查是否有一对a[i],a[j]满足f(a[i],a[j])=c(c是一个预定义常数)。
假设f(a,b)=a+b,算法为:
Algo Paires(A[0..N-1], C)
in: Tab A[0..n-1] and C a constant
out : Boolean
Init indice ← 0
For i ← 0..n-1 do
if indice ≠ i & A[indice] + A[i] = C
return true
else if i = n-1 & indice ≤ n-2
indice++; i ← 0;
End for
return False
但如果:
那么算法是什么呢?有什么建议吗?
最佳答案
提示:假设有一个二维矩阵,它的行和列被排序,并且给你一个数字x,你需要找到它。。。