从后向前处理的思路,不需要每次插入后移。
class Solution {
public:
void merge(int A[], int m, int B[], int n) {
if (n<1) {//B为空,不需处理
return;
}
int i=m-1;
int j=n-1;
int k=m+n-1;
while (i>=0&&j>=0) {
A[k--]=A[i]>B[j]?A[i--]:B[j--];
}
while (j>=0) {
A[k--]=B[j--];
}
}
};