题解 | #在两个长度相等的排序数组中找到上中位数#
在两个长度相等的排序数组中找到上中位数
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