lintcode 64 合并排序数组

lintcode 64 合并排序数组

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

样例
样例 1:

输入:[1, 2, 3] 3 [4,5] 2
输出:[1,2,3,4,5]
解释:
经过合并新的数组为[1,2,3,4,5]
样例 2:

输入:[1,2,5] 3 [3,4] 2
输出:[1,2,3,4,5]
解释:
经过合并新的数组为[1,2,3,4,5]
注意事项
你可以假设A具有足够的空间(A数组的大小大于或等于m+n)去添加B中的元素。

class Solution {
public:
    /*
     * @param A: sorted integer array A which has m elements, but size of A is m+n
     * @param m: An integer
     * @param B: sorted integer array B which has n elements
     * @param n: An integer
     * @return: nothing
     */
    void mergeSortedArray(int A[], int m, int B[], int n) {
        // write your code here
        int flag = m+n-1;
        int a = m-1;
        int b = n-1;
        while(a>=0&&b>=0){
            if(A[a]>B[b])
                A[flag--]=A[a--];
            else
                A[flag--]=B[b--];
        }
        while(b>=0)
            A[flag--]=B[b--];
    }
};

编码过程奇迹般的流畅,没有遇到错误
思路:从尾部开始进行比较,逐步将B中数据插入A中

你可能感兴趣的:(lintcode简单题,c++)