题解 | #合并两个有序的数组#
合并两个有序的数组
http://www.nowcoder.com/practice/89865d4375634fc484f3a24b7fe65665
class Solution {
public:
void merge(int A[], int m, int B[], int n) {
int a=m-1, b=n-1;
// 从尾部开始插入
for (int i=m+n-1; i!=a && i>-1; i--) {
// i!=a:仅剩下A数组中还有数据未插入时,可无需继续插入
if (i==b) { // 仅数组B中剩余数据未插入,只插入B中数据即可,无需比较
A[i] = B[i];
b--;
continue;
}
if (A[a] > B[b]) {
A[i] = A[a];
a--;
}
else {
A[i] = B[b];
b--;
}
}
}
};