6. 合并排序数组

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/xwdrhgr/article/details/102738047

 合并两个已经排序好的数组A和B为一个数组

思路:从头对比两边数组大小,加到新数组

public class Solution {
    /**
     * @param A: sorted integer array A
     * @param B: sorted integer array B
     * @return: A new sorted integer array
     */
    public int[] mergeSortedArray(int[] A, int[] B) {
        // write your code here
       int[] ret = new int[A.length + B.length];
        int alen = A.length;
        int blen = B.length;
        int retLen=0;
        int i = 0;
        int j = 0;
       
         if (A[alen-1] < B[blen-1]) {
            for (; retLen < ret.length; ) {
                if ( i < (alen )&&A[i] <= B[j] ) {
                    ret[retLen] = A[i];
                    i++;
                } else {
                    ret[retLen] = B[j];
                    j++;
                }
                retLen++;
            }
        } else {
            for (; retLen < ret.length; ) {
                if (i < (blen)&&A[j] >= B[i] ) {
                    ret[retLen] = B[i];
                    i++;
                } else {
                    ret[retLen] = A[j];
                    j++;
                }
                retLen++;
            }
        }
        return ret;
    }
}

猜你喜欢

转载自blog.csdn.net/xwdrhgr/article/details/102738047