using System;


class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param A int整型一维数组 
     * @param m int整型 
     * @param B int整型一维数组 
     * @param n int整型 
     * @return void
     */
    public void merge (int[] A, int m, int[] B, int n) {
        // write code here
        int indexA=m-1;
        int indexB=n-1;
        int indexmerge=m+n-1;
        while(indexA>=0 && indexB>=0)
        {
            if(A[indexA]>=B[indexB])
            {
                A[indexmerge--]=A[indexA--];
                
            }else{
                A[indexmerge--]=B[indexB--];
                //indexB--;
            }
        }
        if(indexA<0){
            while(indexB>=0)
            {
                A[indexmerge--]=B[indexB--];
            }
        }
        
    }
}



因为A的空间足够,所以从后往前填充不用实现搬移A中的元素,双指针,其它没啥了