【发布时间】:2021-11-09 19:11:46
【问题描述】:
问。给定两个长度相等的数组 A 和 B,找到索引 [i,j] 的最大可能连续子数组,使得 max(A[i: j])
示例:A = [10, 21, 5, 1, 3],B = [3, 1, 4, 23, 56]
解释:A[4] = 1, A[5] = 3, B[4] = 23, B[5] = 56, max(A[4], A[5])
索引为[4,5](含),最大连续子数组长度为2
我可以在 O(n2) 蛮力方法中做到这一点,但似乎无法降低时间复杂度。有什么想法吗?
【问题讨论】:
-
什么是 B[i,j] ...?
-
B[i,j] 包含数组 B 中从索引 i 到索引 j 的所有元素
-
格式不正确。您提到的约束是
max(A[i, j]) < B[i, j],但B[i, j]是整数的子数组,那么您到底是什么意思?就是max(A[i, j])应该小于B[i, j]中的any元素? -
是的,但在 B 中的同一索引范围内
-
divide-and-conquer标签是指算法课程的相应章节吗?
标签: algorithm divide-and-conquer