题目描述
将升序排序的整数数组A和B合并,新数组也需有序。
思路
两个数组都有序,所以从起始开始比较两个数组元素的大小,将小的写入到结果中。
C++代码
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
const uint32_t len = a.size() + b.size();
std::vector<int> result(len);
uint32_t aIndex = 0, bIndex = 0, rIndex = 0;
while (aIndex < a.size() && bIndex < b.size()) {
if (a[aIndex] < b[bIndex]) {
result[rIndex++] = a[aIndex++];
} else {
result[rIndex++] = b[bIndex++];
}
}
while (bIndex < b.size()) {
result[rIndex++] = b[bIndex++];
}
while (aIndex < a.size()) {
result[rIndex++] = a[aIndex++];
}
return result;
}
};