【LintCode 简单】6. 合并排序数组 II

本文介绍了一种合并两个已排序整数数组A和B的方法,通过比较A和B中的元素并将其按顺序添加到新数组中,最终得到一个完整的有序数组。文章提供了具体的实现步骤和示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.问题描述:

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

 

2.样例:

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

 

3.代码:

对于这种题目,常常我们需要分情况讨论:

1)当A或B中有一个数组位空时,则直接返回另外一个数组

2)对A和B中的元素顺次进行判断和比较,在a和b中记录A和B中的index下标

3)当某个数组的元素已经全部添加到新数组中时候,则将另外一个数组中的元素再加到新数组中

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
        if A is None:
            return B
        if B is None:
            return A
        l=[]
        a=0
        b=0
        alength=len(A)
        blength=len(B)
        while a<alength and b<blength:
            if A[a]<=B[b]:
                l.append(A[a])
                a+=1
            else:
                l.append(B[b])
                b+=1
        if a!=alength:
            for i in range(a,alength):
                l.append(A[i])
        if b!=blength:
            for i in range(b,blength):
                l.append(B[i])
        return l
            
        
 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值