、
class Solution {
public:
// 借助一个辅助空间再填到nums1,空间复杂度O(n+m)
// 双指针直接归并,从后往前扫,空间复杂度O(1)
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
int i = m - 1, j = n - 1, k = m + n -1;
while(i>=0&&j>=0){
if(nums2[j]>nums1[i]) nums1[k--] = nums2[j--];
else nums1[k--] = nums1[i--];
}
while(k>=0&&j>=0) nums1[k--] = nums2[j--];
}
};