描述
合并两个有序升序的整数数组A和B变成一个新的数组。新数组也要有序。
样例
样例 1:
输入: A=[1], B=[1]
输出:[1,1]
样例解释: 返回合并后的数组。
样例 2:
输入: A=[1,2,3,4], B=[2,4,5,6]
输出: [1,2,2,3,4,4,5,6]
样例解释: 返回合并后的数组。
分析:可采用归并排序的原理,对两数组进行排序。
class Solution {
public:
/**
* @param A: sorted integer array A
* @param B: sorted integer array B
* @return: A new sorted integer array
*/
vector<int> mergeSortedArray(vector<int> &A, vector<int> &B) {
// write your code here
int i=0,j=0;
std::vector<int>c;
//对两个数组进行遍历,将较小的一个插入到c中。
while(i<A.size()&&j<B.size()){
if(A[i]<B[j])
c.push_back(A[i++]);
else
c.push_back(B[j++]);
}
//如果A中还有数据没插入,这里进行插入。
while(i<A.size()){
c.push_back(A[i++]);
}
//如果B中还有数据没插入,这里进行插入。这个while循环和上面那个while循环只会运行一个
while(j<B.size()){
c.push_back(B[j++]);
}
return c;
}
};