样例
给出 A = [1, 2, 3, empty, empty]
, B = [4,
5]
合并之后 A 将变成 [1,2,3,4,5]
分析思路:
为了和占用额外的空间,从最后一个数开始比较,每次将比较大的数放入A的后面,依次向前。
class Solution {
/**
* @param A: sorted integer array A which has m elements,
* but size of A is m+n
* @param B: sorted integer array B which has n elements
* @return: void
*/
public void mergeSortedArray(int[] A, int m, int[] B, int n) {
// write your code here
int i=m-1;
int j=n-1;
int index=n+m-1;
while(i>=0&&j>=0){
if(A[i]>B[j]){
A[index--]=A[i--];
}else{
A[index--]=B[j--];
}
}
while(i>=0){
A[index--]=A[i--];
}
while(j>=0){
A[index--]=B[j--];
}
}
}