思路:
1,笨方法:
扫描两个数组,进行比较,将元素从小到大添加至另一个数组X,然后用X覆盖nums1,空间复杂度高。
2,奇技淫巧:
直接将另一个数组的元素加入nums1,对nums1进行排序。(未曾设想的道路)。
class Solution {
public:
/* 笨方法
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n)
{
vector<int> ans;
int i=0,j=0;
while(i<m&&j<n)
{
if(nums1[i]<=nums2[j])
{
ans.push_back(nums1[i]);
i++;
}
else
{
ans.push_back(nums2[j]);
j++;
}
}
if(i<m)
{
for(;i<m;i++)
{
ans.push_back(nums1[i]);
}
}
if(j<n)
{
for(;j<n;j++)
{
ans.push_back(nums2[j]);
}
}
for(int k=0;k<ans.size();k++)
{
nums1.at(k)=ans[k];
}
}*/
//奇技淫巧
void merge(vector<int> &nums1,int m, vector<int> &nums2,int n)
{
int i=0;
while(i<n)
{
nums1[m++] = nums2[i++];
}
sort(nums1.begin(),nums1.end());
}
};