思路:
主要难点在于需要直接在nums1上修改,不能开辟新的内存空间
所以,从后往前判断两数组的对应位置元素,哪个大就选哪个放在当前位置上
最后判断第二个数组是否还有剩余
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.
"""
res = []
p = m + n - 1
while m > 0 and n > 0:
if nums2[n-1] > nums1[m-1]:
nums1[p] = nums2[n-1]
n -= 1
else:
nums1[p] = nums1[m-1]
m -= 1
p -= 1
while n > 0:
nums1[p] = nums2[n-1]
p -= 1
n -= 1