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