See my other solution for the idea
https://blog.csdn.net/weixin_41545780/article/details/105474649
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.
"""
indexa = 0
indexb = 0
while indexa < m and indexb < n:
if nums2[indexb] < nums1[indexa]:
self.houyiyiwei(nums1,indexa,m)
m += 1
nums1[indexa] = nums2[indexb]
indexb += 1
else:
indexa += 1
if indexb < n:
length = n - indexb
for i in range(length):
thisindex = i + indexa
nums1[thisindex] = nums2[indexb]
indexb += 1
def houyiyiwei(self,inputlist,startindex,m):
length = len(inputlist)
for i in range(m - 1,startindex-1,-1):
inputlist[i+1] = inputlist[i]