题目描述:力扣
解题思路:
要求原地算法,直接将B插入A中,思路是从后往前,进行比较,因为如果从前往后比较,很大可能会有插入,对于数组来说插入的耗时太大了。
class Solution {
public void merge(int[] A, int m, int[] B, int n) {
int i = m-1;
int j = n-1;
while(j>=0 && i>=0){
if(A[i]>B[j]){
A[i+j+1] = A[i];
i--;
}
else{
A[i+j+1] = B[j];
j--;
}
}
if(i<0){
for(int l = 0; l<=j;l++){
A[l]=B[l];
}
}
}
}