class Solution {
public:
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
int fast = m - 1;
int slow = n - 1;
int index = m + n - 1;
while ((fast >= 0) || (slow >= 0)) {
if (fast < 0) {
nums1[index--] = nums2[slow--];
continue;
}
if (slow < 0) {
break;
}
nums1[index--] = (nums1[fast] < nums2[slow]) ? nums2[slow--] : nums1[fast--];
}
}
};