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.

results matching ""

    No results matching ""