题解 | #在两个长度相等的排序数组中找到上中位数#

在两个长度相等的排序数组中找到上中位数

http://www.nowcoder.com/practice/6fbe70f3a51d44fa9395cfc49694404f

代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可

find median in two sorted array

@param arr1 int整型一维数组 the array1

@param arr2 int整型一维数组 the array2

@return int整型

#顺便复习了一下合并两个有序数组,原理很简单,倒着用双指针遍历把他们对比大小以后放进新的列表中。写的有点儿长,其他人的只遍历len(arr1)次我觉得比我这个好,一开始没想到,光想着合并了

def findMedianinTwoSortedAray(self , arr1, arr2):
    li = [0]*(len(arr1)+len(arr2))
    m = len(arr1)-1
    n = len(arr2)-1
    dummy = len(arr1)+len(arr2)-1
    
    while m >= 0 and n >= 0:
        if arr1[m] >= arr2[n]:
            li[dummy] = arr1[m]
            m -= 1
            dummy -= 1
        else:
            li[dummy] = arr2[n]
            n -= 1
            dummy -= 1
    while m >= 0:
        li[dummy] = arr1[m]
        m -= 1
        dummy -= 1
    while n >= 0:
        li[dummy] = arr2[n]
        n -= 1
        dummy -= 1
    return li[len(li)//2-1]
    
    # write code here
全部评论

相关推荐

双非一本失业第二年:《机器视觉垃圾分类》
点赞 评论 收藏
分享
11-15 18:39
已编辑
西安交通大学 Java
全村最靓的仔仔:卧槽,佬啥bg呢,本也是西交么
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务