比较简单的题目,因为两个数组已经是有序的了,要合并之后也是有序的,只需要搞两个指针i,j分别指向数组nums1和数组nums2,搞个中间数组nums3来存放结果,每次判断nums1指向的数和nums2指向的数谁更小,谁就先放进nums3,对应的数组指针向后移动就可以了。
class Solution {
public:
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
vector<int>nums3;
int i=0,j=0;
while(i<m&&j<n)
{
if(nums1[i]<nums2[j])nums3.push_back(nums1[i++]);
else nums3.push_back(nums2[j++]);
}
while(i<m)nums3.push_back(nums1[i++]);
while(j<n)nums3.push_back(nums2[j++]);
nums1=nums3;
}
};