
1 双指针
class Solution {
public:
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
int idx1 = 0, idx2 = 0;
vector<int> tmp;
while (idx1 < m || idx2 < n) {
if (idx1 == m)
tmp.emplace_back(nums2[idx2++]);
else if (idx2 == n)
tmp.emplace_back(nums1[idx1++]);
else if (nums1[idx1] < nums2[idx2])
tmp.emplace_back(nums1[idx1++]);
else tmp.emplace_back(nums2[idx2++]);
}
for (int i = 0; i < n + m; i++)
nums1[i] = tmp[i];
}
};

本文介绍了一种使用双指针技术来合并两个已排序数组的方法。通过定义两个指针分别遍历两个输入数组,该算法有效地将两个数组合并为一个有序数组。此方法避免了直接对原始数组进行操作可能导致的问题。
419

被折叠的 条评论
为什么被折叠?



