题解 | #合并两个有序的数组#
合并两个有序的数组
https://www.nowcoder.com/practice/89865d4375634fc484f3a24b7fe65665
import java.util.*;
public class Solution {
public void merge(int A[], int m, int B[], int n) {
int i = m-1;
int j = n-1;
//新数组的指针
int k = m+n-1;
//任意一个数组遍历结束
while(i >= 0 && j >= 0){
//这里面很关键,首先注意判断范围,就是>=0,因为j--,是先用到j,再执行--
//因此会用到等于0的时候,再执行-1,不符合
//然后赋值这里,是用到了谁,谁-1,不是都要-1,因此j--操作应该在赋值进行,而不是在比较处进行
//否则,不应该-1的,都-1了
A[k--] = B[j] >= A[i]? B[j--]:A[i--];
}
//A数组没有遍历完,直接就在里面,所以只需要把B数组装进去就行
while(j >= 0){
A[k--] = B[j--];
}
}
}