做法
- 先确定合并数组后数组的大小
从后往前赋值,依次比较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--];
}
}
};
京公网安备 11010502036488号