做法
- 先确定合并数组后数组的大小
从后往前赋值,依次比较A和B数组较大的值赋值过去
如果A、B数组中其中一个数组已经全部赋值过去,那么另一个数组剩余值从后往前依次赋值即可
时间复杂度
代码
class Solution { public: void merge(int A[], int m, int B[], int n) { int cnt=n+m-1; n--,m--; for(int i=cnt;i>=0;i--){ if((m>=0&&A[m]>B[n])||n==-1) A[i]=A[m--]; else A[i]=B[n--]; } } };