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 1:
1 2 3 4
| nums1 = [1, 3] nums2 = [2]
The median is 2.0
|
Example 2:
1 2 3 4
| nums1 = [1, 2] nums2 = [3, 4]
The median is (2 + 3)/2 = 2.5
|
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| class Solution(object): def findMedianSortedArrays(self, nums1, nums2): """ :type nums1: List[int] :type nums2: List[int] :rtype: float """ nums = [0] * (len(nums1) + len(nums2)) i, j, k = 0, 0, 0 while k < len(nums): if i >= len(nums1): nums[k] = nums2[j] j += 1 elif j >= len(nums2): nums[k] = nums1[i] i += 1 else: if nums1[i] < nums2[j]: nums[k] = nums1[i] i += 1 else: nums[k] = nums2[j] j += 1 k += 1 if len(nums) % 2 == 1: n = int((len(nums)-1)/2) m = nums[n] else: mi = nums[int(len(nums) / 2 - 1)] ma = nums[int(len(nums) / 2)] m = (mi+ma)/2 return m
|