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)).
Example 1:
nums1 = [1, 3]
nums2 = [2]
The median is 2.0
Example 2:
nums1 = [1, 2]
nums2 = [3, 4]
The median is (2 + 3)/2 = 2.5
import bisect
class Solution:
def findMedianSortedArrays(self, nums1, nums2):
"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: float
"""
if len(nums1) < len(nums2):
nums1, nums2 = nums2, nums1
low, high = 0, len(nums1)
for i in range(len(nums2)):
index = bisect.bisect_left(nums1, nums2[i], low, high)
nums1.insert(index, nums2[i])
low, high = index + 1, len(nums1)
if len(nums1)%2 == 0:
return (nums1[len(nums1)//2] + nums1[len(nums1)//2 -1])/2
else:
return nums1[len(nums1)//2]