Merge Sorted Array
- pain point :
vector<int>res(m+n,0);
- it is
int i = m - 1 , not i = nums1.size();
class Solution {
public:
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
// "345" ""
// "222" "2"
// "347" "12345"
// "344999" "5"
int len = m+n-1;
int i = m - 1;
int j = n - 1;
vector<int>res(m+n,0);
while(i >= 0 && j >= 0){
res[len--] = nums2[j] > nums1[i] ? nums2[j--] : nums1[i--];
}
while(i >= 0)
res[len--] = nums1[i--];
while(j >= 0)
res[len--] = nums2[j--];
nums1 = res;
}
};