88 Merge Sorted Array
Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.
- Note: You may assume that nums1 has enough space (size that is greater or equal to m + n) to hold additional elements from nums2. The number of elements initialized in nums1 and nums2 are m and n respectively.
Solution:
class Solution {
public:
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
int i1 = m-1, i2 = n-1, i = m+n-1;
int n1, n2;
while ( i1 >= 0 or i2 >= 0 ) {
if ( i1 <= -1 ) n1 = INT_MIN;
else n1 = nums1[i1];
if ( i2 <= -1 ) n2 = INT_MIN;
else n2 = nums2[i2];
if ( n1 > n2 ) {
nums1[i--] = n1;
i1--;
}
else {
nums1[i--] = n2;
i2--;
}
}
return;
}
};
Notes
Note the trick to use INT_MIN.