解题思路
同时遍历AB数组,按顺序存下小的元素,最后将A、B中的剩余元素存入数组中,最后对A赋新值。
代码
#include<string.h>
class Solution {
public:
void merge(int A[], int m, int B[], int n) {
int i = 0,j = 0;
int *C = new int[m + n];
memset(C,0,sizeof(int) * (m + n));
int index = 0;
while(i < m && j < n){
if(A[i] <= B[j])
C[index++] = A[i++];
else
C[index++] = B[j++];
}
while(i < m)
C[index++] = A[i++];
while(j < n)
C[index++] = B[j++];
for(int k = 0;k < index;k++)
A[k] = C[k];
delete[]C;
}
};