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中的元素,双指针,其它没啥了