LeetCode 88 – Python 3 (Week 05 – 11)

Solution 1

 class Solution:
    def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None:
        """
        Do not return anything, modify nums1 in-place instead.
        """
        if m == 0:
            #nums1 = nums2
            for i in range(len(nums2)):
                nums1[i] = nums2[i]
            
            
        else:
            i = m -1
            j = n - 1
            while i >= 0 and j >= 0:
                if nums1[i] > nums2[j]:
                    nums1[i+j+1] = nums1[i]
                    i -= 1
                else:
                    nums1[i+j+1] = nums2[j]
                    j -= 1
          
            if i < 0: 
                nums1[0:j+1] = nums2[0:j+1]

Time complexity is O(n+m). Space complexity is O(1).

Leave a comment

Design a site like this with WordPress.com
Get started