004 寻找两个正序数组的中位数
题目描述如下图

思路如下:1、先将nums1和nums2分别分成两个子数组N3 N4 和N5 N6
所以 中位数要么在N3 N4 中,要么在N5 N6 中。
将这个问题变成了规模减少一半的子问题。最后递归出口在当某个数组为空时,直接返回另外一个数组的第K个数
2、N3 N4 N5 N6的确定。先确定一个index1,在nums1中,再在nums2中找到一个index2.
使得N1[index1] >N2[index2]&&N1[index1]<N2[index2+1]。用类似二分查找的方法来做,复杂度为log级别。
注意点:1)数组下标i与第k个数中的k的区别。
2)一些边界条件的处理。
思考:本题可以扩展成 寻找两个有序数组的第K个元素。
思路相同,是经典的分治法问题求解。

浙公网安备 33010602011771号