题目要求时间复杂度O(log(m+n))。考虑用二分查找,因为是两个数组,可以分别比较k/2的元素,则较小元素及其之前的元素是k/2小的元素之内的。递归调用时,要注意将index+1。
1 | class Solution { |
解题思路:考虑两种情况。
[1 2 3 4] [5 6 7] 先比较三次,找出三个最小的,则第四个即为解 -> 4
[1 2 3 4] [5 6 7 8] 先比较三次,找出三个最小的,则第四、五个即为解-> (4+5)/2
代码如下:
1 | class Solution { |
运行结果:36ms,超过66.4%