64. 合并排序数组
合并两个排序的整数数组A和B变成一个新的数组。
样例
样例 1:
输入:[1, 2, 3] 3 [4,5] 2
输出:[1,2,3,4,5]
解释:
经过合并新的数组为[1,2,3,4,5]
样例 2:
输入:[1,2,5] 3 [3,4] 2
输出:[1,2,3,4,5]
解释:
经过合并新的数组为[1,2,3,4,5]
注意事项
你可以假设A具有足够的空间(A数组的大小大于或等于m+n)去添加B中的元素
public class Solution {
/*
* @param A: sorted integer array A which has m elements, but size of A is m+n
* @param m: An integer
* @param B: sorted integer array B which has n elements
* @param n: An integer
* @return: nothing
*/
public void mergeSortedArray(int[] A, int m, int[] B, int n) {
// write your code here
int retLen = m + n - 1;
m--;
n--;
for (; n >= 0; ) {
if (0 <= m && A[m] >= B[n]) {
A[retLen] = A[m];
m--;
} else {
A[retLen] = B[n];
n--;
}
retLen--;
}
}
}