用C++合并两个有序数组
时间: 2024-09-28 14:11:00 浏览: 20
在C++中,合并两个已排序的整数数组可以使用双指针法。这个方法的基本思路是创建一个新的数组,然后从两个输入数组的起始位置开始比较元素,将较小的那个添加到新数组,并移动指向较小元素的指针,直到其中一个数组遍历完。以下是简单的步骤:
```cpp
#include <vector>
std::vector<int> mergeSortedArrays(std::vector<int>& nums1, std::vector<int>& nums2) {
int size1 = nums1.size();
int size2 = nums2.size();
std::vector<int> merged(size1 + size2); // 创建新数组
int i = 0, j = 0, k = 0; // 三个指针分别指向nums1、nums2和merged
while (i < size1 && j < size2) {
if (nums1[i] <= nums2[j]) {
merged[k++] = nums1[i++];
} else {
merged[k++] = nums2[j++];
}
}
// 将剩余未添加进新数组的部分复制过去
while (i < size1) {
merged[k++] = nums1[i++];
}
while (j < size2) {
merged[k++] = nums2[j++];
}
return merged;
}
```