题解 | #合并两个有序的数组#
合并两个有序的数组
https://www.nowcoder.com/practice/89865d4375634fc484f3a24b7fe65665
import java.util.*;
public class Solution {
public void merge(int A[], int m, int B[], int n) {
// 由于A数组后面属于空值,我们排序可以先将MAX值放在末尾,这样就不会影响前面的值
// 基本判断
if(m == 0){
for(int i = 0;i<n;i++){
A[i] = B[i];
}
}else if(n == 0){
return;
}
// 双指针(i是A末尾,j是B末尾,l是A合并后的末尾)
int i = m-1,j = n-1,l = m+n-1;
while(i != -1 && j != -1){
A[l--] = A[i]>B[j] ? A[i--] : B[j--];
}
// 判断哪一侧没结束,没结束就全加入即可
if(i != -1){
return;
}else if(j != -1){
while(j != -1){
A[l--] = B[j--];
}
}
}
}

