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;
}
};