4.18
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) {
if(n == 0){// write your code here{
return ;
}
if(m == 0){
for ( int i = 0; i< n; i++){
A[i] = B[i];
}
}
int x = m-1;
int y = n-1;
int flag = m+n-1;
while(x>=0 && y>= 0){
if(A[x]>B[y]){
A[flag--] = A[x];
x--;
}
else if(A[x] < B[y]){
A[flag --] = B[y];
y--;
}
else{
A[flag--] = A[x];
A[flag--] = B[y];
x--;
y--;
}
}
while(x>=0){
A[flag --] = A[x];
x--;
}
while(y>=0){
A[flag--] = B[y];
y--;
}
}
}