Merge Two Sorted Arrays

http://www.lintcode.com/en/problem/merge-two-sorted-arrays/#

归并排序的核心操作,要能够不假思索地写出来并bug-free。

class Solution {
public:
    /**
     * @param A and B: sorted integer array A and B.
     * @return: A new sorted integer array
     */
    vector<int> mergeSortedArray(vector<int> &A, vector<int> &B) {
        int n1 = A.size(), n2 = B.size();
        vector<int> ret(n1 + n2);
        int p = 0, q = 0, k = 0;
        
        while (p < n1 && q < n2) {
            if (A[p] < B[q]) ret[k++] = A[p++];
            else ret[k++] = B[q++];
        }
        while (p < n1) {
            ret[k++] = A[p++];
        }
        while (q < n2) {
            ret[k++] = B[q++];
        }
        
        return ret;
    }
};
posted @ 2017-02-17 15:23  mioopoi  阅读(115)  评论(0)    收藏  举报