我有一个任务,要求相等大小的两个集合M和N j具有不同的数字,只能访问函数kthsmallestM(int k)和kthsmallestN(int k),它们返回第k个最小的整数分别来自M和N,算法应从M + N中找到第[j个最小元素。
使用蛮力执行此操作的方法非常明显,但是该算法应在对kthsmallestM或kthsmallestN进行O(logj
)调用的情况下运行。我不是在寻找完整的解决方案,但是我已经坚持了一段时间,所以只需要一些帮助我入门的指示即可!我尝试过的事情:检查M的最大元素是否小于N的最小元素,反之亦然,根据情况,答案将仅仅是M或N的最大元素。我尝试使用它来创建一个递归算法,该算法对两个集合的较小元素执行相同的检查,但是很快就变成了O(n)。
任何提示?k