A simple O(m+n) time and O(1) space solution


  • 0
    L

    void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {

    	int i = m-1, j = n-1 ,t = n + m - 1;
    	while( i >= 0 && j >= 0 )
    	{
    		if( nums1[i] > nums2[j])
    		{
    			nums1[t--] = nums1[i--];
    		}
    		else
    			nums1[t--] = nums2[j--];
    	}
    	while( j >= 0)
    	{
    		nums1[t--] = nums2[j--];
    	}
        
    }

Log in to reply
 

Looks like your connection to LeetCode Discuss was lost, please wait while we try to reconnect.