题目描述:
合并两个排序的整数数组A和B变成一个新的数组。比如:给出A=[1,2,3,4],B=[2,4,5,6],返回 [1,2,2,3,4,4,5,6]。
注意:这里假设A有足够空间能够容得下B,并且数组A和B的初始元素个数分别为m和n
思路:
A和B都已经是排好序的数组,我们只需要从后往前比较就可以了。
因为这是数组而不是链表,它们是有索引的,索引是从前到后的。如果在数组前方添加一个数字,那么其后的所有元素都需要往后挪一步,而如果在后方添加一个数字,前面的则不需要移动。至于为什么不担心后方空间问题,因为题目说了给A的空间足够大。
代码:
void merge(int A[], int m, int B[], int n)
{
int i = m - 1;
int j = n - 1;
int k = m + n -