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

https://blog.csdn.net/linhuanmars/article/details/19905515

posted @ 2018-08-17 17:56  geeklove  阅读(98)  评论(0)    收藏  举报