合并排序数组

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

样例

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

挑战 

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

class Solution {
    /**
     * @param A and B: sorted integer array A and B.
     * @return: A new sorted integer array
     */
    public int[] mergeSortedArray(int[] A, int[] B) {
        // Write your code here
        if(A.length==0)
          return B;
        if(B.length==0)
          return A;
        int lenA = A.length;
        int lenB = B.length;
        int[] merge = new int[lenA+lenB];
        int i=0;
        int j=0;
        int k =0;
        while(i<lenA && j<lenB){
            if(A[i]<B[j]){
               merge[k] = A[i];
               i++;
               k++;
            }
            else{
               merge[k] = B[j];
               j++;
               k++;
            }
        }
        while(i<lenA){
             merge[k] = A[i];
               i++;
               k++;
        }
         while(j<lenB){
             merge[k] = B[j];
               j++;
               k++;
        }
        return merge;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值