LintCode python 6

LintCode

  1. 合并排序数组 II
    合并两个排序的整数数组A和B变成一个新的数组。

样例
给出A=[1,2,3,4],B=[2,4,5,6],返回 [1,2,2,3,4,4,5,6]

挑战
你能否优化你的算法,如果其中一个数组很大而另一个数组很小?

class Solution:
    """
    @param A: sorted integer array A
    @param B: sorted integer array B
    @return: A new sorted integer array
    """
    def mergeSortedArray(self, A, B):
        # write your code here
        na, nb = len(A), len(B)
        if na > nb:
            A, B = B, A
            na, nb = nb, na 
        i, j = 0, 0
        
        while i < na and j < nb:
            if A[i] <= B[j]:
                B.insert(j,A[i])
                i += 1 
                nb += 1 
            j += 1
        else:
            B = B + A[i:]
        return B 

猜你喜欢

转载自blog.csdn.net/weixin_44409630/article/details/85842134