Day03
Idea:
1、双指针分别指向A和B,将小的放到新建数组中,并移动指针
2、注意点,在比较大小之前应该判断两个指针是否到数组尾部,如果是,则将另一数组拷贝到新数组中,否则执行判断大小的操作,并移动指针
class Solution {
public void merge(int[] A, int m, int[] B, int n) {
int pa = 0;
int pb = 0;
int[] sorted = new int[m+n];
int curVal = 0;
while(pa<m || pb<n){
if(pa==m){
//注意判断其中一个是否到达尾部
curVal = B[pb++];
}else if(pb==n){
curVal = A[pa++];
}else if(A[pa]<B[pb]){
curVal = A[pa++];
}else{
curVal = B[pb++];
}
sorted[pa+pb-1] = curVal;
}
for(int i=0;i<m+n;i++){
A[i] = sorted[i];
}
}
}