LintCode
- 合并排序数组 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