题目描述
给定两个有序数组arr1和arr2,已知两个数组的长度都为N,求两个数组中所有数的上中位数。
上中位数:假设递增序列长度为n,若n为奇数,则上中位数为第n/2+1个数;否则为第n个数
[要求]
时间复杂度为O(logN),额外空间复杂度为O(1)
示例1
输入
[1,2,3,4],[3,4,5,6]
返回值
3
说明
总共有8个数,上中位数是第4小的数,所以返回3。
示例2
输入
[0,1,2],[3,4,5]
返回值
2
说明
总共有6个数,那么上中位数是第3小的数,所以返回2
【解析】
不需要想的太复杂,既然题目说了是有序数组,那就双指针分别指向两个数组,按大小顺序
移动,移动次数为数组长度(题目中说的偶数奇数情况根本没用,因为两个数组长度相等,
不可能得到奇数个数字,中位数必然是第arr1.size()个),指针移完了就取两个数组中小的。