合并两个有序数组cpp
时间: 2023-09-11 22:06:25 浏览: 87
合并两有序数组
可以使用双指针的方法,时间复杂度为 O(m+n),其中 m 和 n 分别为两个数组的长度。
具体做法是,定义两个指针 i 和 j 分别指向两个数组的开头,比较两个指针所指元素的大小,将较小的元素加入结果数组中,并将其所在数组的指针后移一位。重复这个过程,直到其中一个指针到达数组末尾,然后将另一个数组的剩余部分加入结果数组中即可。
以下是示例代码:
```cpp
vector<int> mergeSortedArrays(vector<int>& nums1, vector<int>& nums2) {
int i = 0, j = 0;
vector<int> res;
while (i < nums1.size() && j < nums2.size()) {
if (nums1[i] < nums2[j]) {
res.push_back(nums1[i]);
i++;
} else {
res.push_back(nums2[j]);
j++;
}
}
while (i < nums1.size()) {
res.push_back(nums1[i]);
i++;
}
while (j < nums2.size()) {
res.push_back(nums2[j]);
j++;
}
return res;
}
```
阅读全文