- A数组空间可以容纳A、B数组元素;
- 从后往前比较A、B两个数组元素的大小;
- 将较大元素放置在A数组的最后,同时下标减1;
- 若B中元素有剩余,继续补入A数组。
class Solution {
public:
void merge(int A[], int m, int B[], int n) {
if (n == 0) return;
int a = m - 1;
int b = n - 1;
int index = m + n - 1;
while (a >= 0 && b >= 0) {
A[index--] = A[a] > B[b] ? A[a--] : B[b--];
}
while (b >= 0) {
A[index--] = B[b--];
}
}
};