class Solution {
public:
void merge(int A[], int m, int B[], int n) {
int sum = m + n;
if(sum <= 0)
return;
int idx = sum - 1, idx1 = m - 1, idx2 = n - 1;
for(; idx >= 0; --idx){
int first = idx1 >= 0 ? A[idx1] : 0x80000000;
int second = idx2 >= 0 ? B[idx2] : 0x80000000;
if(first >= second){
A[idx] = first;
idx1--;
}
else{
A[idx] = second;
idx2--;
}
}
return;
}
};
错误1:
没有想到从后向前的方法
错误2:
当sum = 1时,仍然需要将B中的元素合并入A