的鏈接問題:merge sorted array合併排序數組在本文給出了:列表的就地修改不起作用
我不知道爲什麼退出功能時,我的解決方案不修改列表nums1 合併。這裏是代碼:
def merge(self, nums1, m, nums2, n):
"""
:type nums1: List[int]
:type m: int
:type nums2: List[int]
:type n: int
:rtype: void Do not return anything, modify nums1 in-place instead.
"""
i = 0
j = 0
while i < m and j < n:
if nums1[i] < nums2[j]:
i += 1
else:
nums1 = nums1[:i-1] + [nums2[j]] + nums1[i-1:]
i += 1
j += 1
if i == m:
nums1 = nums1 + nums2
您未修改nums1,您正在創建一個新列表並將其命名爲nums1。說nums1 =(任何)不會改變任何nums1曾經是,它只是創建一個新的列表,並將其分配給變量nums1(擦除該範圍內存在的任何其他分配)。 – James
所以當我退出這個函數時,我在這個函數中創建的名爲nums1的列表將不會再保存在內存中。是對的嗎? – JoshuaW1990
由於最後一行,是 – Brian