方法
从nums1尾部开始,依次将nums1、nums2中数字由大到小填入到nums1中。
class Solution {
public:
void merge(vector<int>& nums1, int x, vector<int>& nums2, int y)
{
if(x == 0 )swap(nums1,nums2);
else
{
int i = x - 1;
int k = x + y - 1;
for(int j = y - 1;j >=0;j--)
{
while(i >= 0 && nums2[j]<=nums1[i])
{
nums1[k--] = nums1[i--];
}
nums1[k--] = nums2[j];
}
}
}
}
执行用时:8ms,36.71%
当然也可以从前往后写,不过感觉还是从后往前更简单一些,其他方法我也没过多的去看就不写了。