[关闭]
@urey 2016-02-20T15:03:07.000000Z 字数 820 阅读 885

找出长度为m和n的两个有序数组中的第k个数

算法 leetcode


初始假设

假设数组1的集合为M,每个数标记为
数组2的集合为N,每个数标记为
设数组1,2的合并后的有序集合为P,每个数标记为;此问既是要寻找

迭代过程

进行比较。

,则可知有。此时:
1. 若有,则,且是新的集合中的第k个数;
2. 若,则有,且是新的集合中的第k个数;
3. 若,则有,且是新的集合中的第k-(y)个数;

,则为有序集合P中的此时:
1. 若有,则,且是新的集合中的第k个数;
2. 若有,则,且是新的集合中的第k个数;
3. 显然时,有

通过前述的过程不断迭代,最后有仅属于某一个数组集合,或时,容易获得最终结果。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注