解题思路:用两个指针i,j分别标记B、A数组的位置,当A[j]>B[i]时,先将j及其之后的元素后移,并在j处插入B[i];否则,j++。注意A为空的情况以及插入元素A的之后的边界值变化。

public class Solution {
    public void merge(int A[], int m, int B[], int n) {
        int j=0;
        if(m==0){
            for(int i=0;i<n;i++){
                A[i]=B[i];
            }
            return;
        }
        for(int i=0;i<n;){
            if(j<m&&A[j]<B[i]){
                j++;
            }
            else{
                for(int k=m;k>j;k--){
                    A[k]=A[k-1];
                }
                A[j]=B[i];
                i++;
                m++;
            }
        }
    }
}