这是我的一个朋友告诉我的一个问题,在面试时有人问他,我一直在考虑解决方案。
亚线性时间对我来说是对数的,所以也许是某种分而治之的方法。为了简单起见,假设两个数组的大小相同,并且所有元素都是唯一的
我认为这是对子数组A[0..n-1]和的两个并发二进制搜索B[0..n-1],即O(log n)。
A[0..n-1]
B[0..n-1]
A[n-1]
A
B[n-1]
B
a
b
a + b > n
A[a] > B[b]
b = b / 2
a = a / 2
a + b < n
b = 3/2 * b
a = 3/2 * a
a + b = n
max(A[a], B[b])
我相信最坏的情况是O(ln n),但无论如何肯定是亚线性的。