Hard
Given two sorted arrays nums1 and nums2 of size m and n respectively, return the median of the two sorted arrays.
The overall run time complexity should be O(log (m+n)).
Example 1:
Input: nums1 = [1,3], nums2 = [2]
Output: 2.00000
Explanation: merged array = [1,2,3] and median is 2.
Example 2:
Input: nums1 = [1,2], nums2 = [3,4]
Output: 2.50000
Explanation: merged array = [1,2,3,4] and median is (2 + 3) / 2 = 2.5.
Example 3:
Input: nums1 = [0,0], nums2 = [0,0]
Output: 0.00000
Example 4:
Input: nums1 = [], nums2 = [1]
Output: 1.00000
Example 5:
Input: nums1 = [2], nums2 = []
Output: 2.00000
Constraints:
nums1.length == mnums2.length == n0 <= m <= 10000 <= n <= 10001 <= m + n <= 2000-106 <= nums1[i], nums2[i] <= 106Here are the steps to solve the “Median of Two Sorted Arrays” problem:
nums1 and nums2) into a single sorted array (merged).class Solution:
def findMedianSortedArrays(self, nums1, nums2):
# Combine arrays
merged = sorted(nums1 + nums2)
# Find median
length = len(merged)
if length % 2 == 1:
# Odd length
return float(merged[length // 2])
else:
# Even length
mid1 = merged[length // 2 - 1]
mid2 = merged[length // 2]
return (mid1 + mid2) / 2.0
# Example Usage:
solution = Solution()
# Example 1:
nums1_1 = [1, 3]
nums2_1 = [2]
print(solution.findMedianSortedArrays(nums1_1, nums2_1)) # Output: 2.00000
# Example 2:
nums1_2 = [1, 2]
nums2_2 = [3, 4]
print(solution.findMedianSortedArrays(nums1_2, nums2_2)) # Output: 2.50000
# Example 3:
nums1_3 = [0, 0]
nums2_3 = [0, 0]
print(solution.findMedianSortedArrays(nums1_3, nums2_3)) # Output: 0.00000
# Example 4:
nums1_4 = []
nums2_4 = [1]
print(solution.findMedianSortedArrays(nums1_4, nums2_4)) # Output: 1.00000
# Example 5:
nums1_5 = [2]
nums2_5 = []
print(solution.findMedianSortedArrays(nums1_5, nums2_5)) # Output: 2.00000
This code defines a Solution class with a method findMedianSortedArrays that takes two sorted arrays (nums1 and nums2) as input and returns the median of the combined sorted array. The example usage demonstrates how to create an instance of the Solution class and call the findMedianSortedArrays method with different inputs.