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).