1 static int wing=[]() 2 { 3 std::ios::sync_with_stdio(false); 4 cin.tie(NULL); 5 return 0; 6 }(); 7 8 class Solution 9 {10 public:11 void merge(vector & nums1, int m, vector & nums2, int n) 12 {13 if(n==0)14 return;15 int p1=m-1,p2=n-1,p=m+n-1;16 while(p1>=0&&p2>=0)17 {18 if(nums1[p1]=0)24 nums1[p--]=nums2[p2--];25 return; 26 }27 };
先指定合并容器长度,然后扫描两个原始序列,从后向前比较,比较一次就可以确定一个元素最终位置。
当某个原序列比较完毕后,若比较完毕的是nums2序列,则直接返回
若比较完的是nums1序列,则要将剩下的nums2元素顺序放入合并序列的前面空位置。