Median of Two Sorted Arrays
There are two sorted arrays nums1 and nums2 of size m and n respectively.
Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).
You may assume nums1 and nums2 cannot be both empty.
Example
nums1 = [1, 3]
nums2 = [2]
The median is 2.0
Solution
class Solution:
def findMedianSortedArrays(self, nums1, nums2):
"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: float
"""
len1 = len(nums1)
len2 = len(nums2)
if (len1+len2)%2 != 0:
return self.getkth(nums1,nums2,int((len1+len2+1)/2))
else:
return (self.getkth(nums1,nums2,int((len1+len2)/2))+self.getkth(nums1,nums2,int((len1+len2)/2+1)))/2
def getkth(self, nums1, nums2, k):
len1 = len(nums1)
len2 = len(nums2)
if len1>len2:
return self.getkth(nums2,nums1,k)
if len1 == 0:
return nums2[k-1]
if k == 1:
return min(nums1[0],nums2[0])
ka = int(min(len1,k/2))
kb = k - ka
if nums1[ka-1]<=nums2[kb-1]:
return self.getkth(nums1[ka:],nums2,kb)
else:
return self.getkth(nums1,nums2[kb:],ka)