daily log 01.04.21

less than 1 minute read

Attempting a hard leetcode (#4)

def get_median(array):
    if len(array)%2==0:
        return ((array[int(len(array)/2)] + array[int(len(array)/2) -1 ])/2)
    
    else:
        return array[int(len(array)/2)]
    
def merge(arr1, arr2, merged):
    if arr1[0] < arr2[0]:
        merged.append(arr1.pop(0))
    if arr2[0] < arr1[0]:
        merged.append(arr2.pop(0))

    try:
        merge(arr1, arr2, merged)
    except:
        try:
            if len(arr1) == 0:
                merged += arr2
            if len(arr2) == 0:
                merged += arr1
        except:
            print(merged)
            pass
    
    return merged

def median_of_two_arrays(arr1, arr2):
    if len(arr1) == 0 and len(arr2) == 0:
        return 0
    
    if len(arr1) == 0:
        return get_median(arr2)
    
    if len(arr2) == 0:
        return get_median(arr1)
    
    if arr1[-1] < arr2[0]:
        return ((arr1[-1] + arr2[0])/2)
    
    if arr2[-1] < arr1[0]:
        return ((arr2[-1] + arr1[0])/2)
    
    else:
        return get_median(merge(arr1, arr2, []))