4. Median of Two Sorted Arrays

solution 1: merge two sorted array and return the middle index element
O(m+n), O(m+n)
def solve(nums1, nums2): new_len = len(nums1) + len(nums2) is_odd = True if new_len % 2 == 1 else False new_nums = list() the_len = min(len(nums1), len(nums2)) i, j = 0, 0 while True: if nums1[i] < nums2[j]: new_nums.append(nums1[i]) i += 1 else: new_nums.append(nums2[j]) j += 1 if i == len(nums1) or j == len(nums2): break if i < len(nums1): new_nums += nums1[i:len(nums1)] else: new_nums += nums2[j:len(nums2)] if is_odd: return new_nums[new_len/2] else: return (new_nums[new_len/2] + new_nums[new_len/2-1]) / 2 nums1, nums2 = [1, 2, 3,5], [3, 7,8,9] print solve(nums1, nums2)
2 TopK

浙公网安备 33010602011771号