Lintcode 合并排序 merge sort

合并两个排序的整数数组A和B变成一个新的数组。
样例
给出A=[1,2,3,4],B=[2,4,5,6],返回 [1,2,2,3,4,4,5,6]

分析
题目中的两个数组已经是有序的了,所以只需要依次取出其中的数字添加到新数组,谁先被取完,将另一个数组中剩下的数字添加到新数组。


def merge_sort(a,b):
    lenA,lenB=len(a),len(b)
    i,j=0,0
    newARR=[]
    while(i<lenA and j<lenB):
        if(a[i]<b[j]):
            newARR.append(a[i])
            i+=1
        else
            newARR.append(b[j])
            j+=1
    if i==lenA:
        for r in range(j,lenB):
            newARR.append(b[r])
    if j==lenB:
        for r in range(i,lenA):
            newARR.append(a[r])
    return newARR

猜你喜欢

转载自blog.csdn.net/Bismarckczy/article/details/82451272