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

Difficulty: interview

Starter code:

class Solution:
    def findMedianSortedArrays(self, nums1: List[int], nums2: List[int]) -> float:
        

Solutions:
class Solution:
     def findMedianSortedArrays(self, nums1, nums2):
         """
         :type nums1: List[int]
         :type nums2: List[int]
         :rtype: float
         """
         nums = nums1 + nums2
         nums.sort()
         if len(nums) % 2 == 1:
             return float(nums[len(nums)//2])
         return (nums[len(nums)//2-1] + nums[len(nums)//2]) / 2

class Solution:
     def findMedianSortedArrays(self, nums1, nums2):
         """
         :type nums1: List[int]
         :type nums2: List[int]
         :rtype: float
         """
         nums1 = nums1 + nums2
         nums1.sort()
         len_nums1 = len(nums1)
         if len_nums1%2 == 0:
             return float((nums1[int(len_nums1/2)-1]+nums1[int(len_nums1/2)])/2)
         else:
             return float(nums1[int(len_nums1/2)])
         


class Solution:
     def findMedianSortedArrays(self, nums1, nums2):
         """
         :type nums1: List[int]
         :type nums2: List[int]
         :rtype: float
         """
         nums1.extend(nums2)
         nums1.sort()
         size = len(nums1)
         if (size  % 2):
             return nums1[size//2]
         else:
             return (nums1[size//2] + nums1[size//2-1])/2

class Solution:
     def findMedianSortedArrays(self, nums1, nums2):
         """
         :type nums1: List[int]
         :type nums2: List[int]
         :rtype: float
         """
         nums = sorted(nums1 + nums2)
         n = len(nums)
         return nums[int(n/2)] if n%2==1 else (nums[int(n/2)]+nums[int(n/2)-1])/2.0