两个排序数组中最近的对总和

aka*_*ash 5 c arrays algorithm

鉴于整数两个排序阵列,a并且b,和一个整数c,我一定要找到i,j这样的:

a[i] + b[j] <= c
Run Code Online (Sandbox Code Playgroud)

并且a[i] + b[j]尽可能大.

我能想到的最好的解决方案是在O(n log n)时间内,从第一个数组获取每个整数并找到" c-a[i]" 的下限.
任何人都可以建议我更好的方法(可能在O(n)时间)?

jeb*_*jeb 6

想一想,然后你可以问自己:
"每次都有必要在排序的b阵列中搜索来自[]的连续值吗?"

  • 感谢您的答复.我想我明白了.从"开始"开始在第一个数组中,从"结束"开始在b中,如果(a [i + 1] <b [j-1])在b.by之后向前移动,并且保持记录为找到最近的总和就可以解决这个**纠正我**如果我错了. (2认同)