lass Solution { public: void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) { } };
时间: 2024-10-25 08:05:44 浏览: 13
lass2mastodon
这段代码是一个C++类`Solution`的声明,其中包含一个名为`merge`的成员函数。这个函数的作用是对两个已排序的整数数组`nums1`(长度为m)和`nums2`(长度为n)进行合并。合并后的结果应该存储在`nums1`数组中,从位置`m`开始到`m+n`结束。这是一个经典的数组合并问题,通常会使用双指针法来解决。
```cpp
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
// 双指针初始化
int i = m - 1, j = n - 1;
// 合并过程
while (i >= 0 && j >= 0) {
if (nums1[i] > nums2[j]) {
nums1[m + j] = nums2[j]; // 把较小的值放入nums1
j--;
} else {
nums1[m + i] = nums1[i]; // 把较大的值放入nums1
i--;
}
}
// 将nums2剩余部分(如果有的话)追加到nums1
while (j >= 0) {
nums1[m + j] = nums2[j];
j--;
}
}
```
阅读全文