俩个顺序数组归并
给出一个整数数组
和有序的整数数组
,请将数组
合并到数组
中,变成一个有序的升序数组
注意:
1.可以假设
数组有足够的空间存放
数组的元素,
和
中初始的元素数目分别为
和
,
的数组空间大小为
+ ![](https://www.nowcoder.com/equation?tex=n%5C)
注意:
1.可以假设
2.不要返回合并的数组,返回是空的,将数组
的数据合并到
里面就好了
3.
数组在[0,m-1]的范围也是有序的
例1:
A: [4,5,6,0,0,0],m=3
B: [1,2,3],n=3
合并过后A为:
A: [1,2,3,4,5,6]
![](https://img2020.cnblogs.com/blog/1704037/202108/1704037-20210819141238128-724150353.gif)
class Solution { public: void merge(int A[], int m, int B[], int n) { int tailA=m-1; int tailB=n-1; int tail=m+n-1; while(tailA!=-1&&tailB!=-1) { if(A[tailA]>B[tailB]) { A[tail]=A[tailA]; tail--; tailA--; } else { A[tail]=B[tailB]; tail--; tailB--; } } if(tailB>=0) { for(int i=0;i<=tailB;i++){ A[i]=B[i]; } } } };