面试题 10.01. 合并排序的数组
程序员文章站
2022-06-07 23:42:35
...
题目来源
题目描述
题目解析
双指针 + 从后向前比较
public static void merge(int[] A, int m, int[] B, int n) {
if (B == null || n == 0){
return ;
}
int idx1 = m - 1;
int idx2 = n - 1;
int cur = m + n - 1;
while (idx1 > -1 && idx2 > -1){
if (B[idx2] > A[idx1]){
A[cur--] = B[idx2--];
}else {
A[cur--] = A[idx1--];
}
}
if (idx2 != -1){
System.arraycopy(B, 0, A, 0, idx2 + 1);
}
}