题目描述
给出两个有序的整数数组A和B,请将数组A合并到数组B中,变成一个有序的数组
注意:
可以假设A数组有足够的空间存放B数组的元素, A和B中初始的元素数目分别为m和n
思路:
从A,B的末尾开始比较,值大的放在末端。
用三个变量分别指向A,B,合并后的末端,想左遍历比较,直到A或B遍历结束。
public class Solution {
public void merge(int A[], int m, int B[], int n) {
int i = m-1;
int j = n-1;
int k = n+m-1;
while(i > -1 && j > -1){
if(A[i] > B[j]){
A[k] = A[i];
k--;
i--;
}else{
A[k] = B[j];
k--;
j--;
}
}
if(i == -1){
while(j > -1){
A[j] = B[j];
j--;
}
}
}
}