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:
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
找中位数,两个数组都已经排好序了,找两个指针指向两个数组的第一个元素,比较大小,取其中小的那个append到新数组里,并把该指针后移,最后返回新数组的中位数即可。
class Solution(object):
def findMedianSortedArrays(self, nums1, nums2):
"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: float
"""
length = len(nums1) + len(nums2)
i = 0
j = 0
num = []
while i < len(nums1) and j < len(nums2):
if nums1[i] <= nums2[j]:
num.append(nums1[i])
i += 1
else:
num.append(nums2[j])
j += 1
while i < len(nums1):
num.append(nums1[i])
i += 1
while j < len(nums2):
num.append(nums2[j])
j += 1
if length % 2 == 0:
return (num[length/2] + num[length/2 - 1]) *1.0 / 2
else:
return num[length//2]