Given two sorted integer arrays A and B, merge B into A as one sorted array.
Note:
You may assume that A has enough space (size that is greater or equal to m + n) to hold additional elements from B. The number of elements initialized in A and B are m and n respectively.
默认从小到大,从后往前比较,这样就不用考虑后移了
第一个循环比较完以后如果j<0说明B[0]放在了A[0]上,直接结束,否则要将B数组中剩下的数搬到A数组中。
class Solution {
public:
void merge(int A[], int m, int B[], int n) {
int index=m+n-1;
int i=m-1,j=n-1;
while(i>=0&&j>=0){
if(A[i]>B[j])
{
A[index]=A[i];
index--;
i--;
}else
{
A[index]=B[j];
index--;
j--;
}
}
while(j>=0)
{
A[index]=B[j];
index--;
j-- ;
}
}
};