问题的链接: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
答案 0 :(得分: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.
"""
nums1[:]=nums1[:m]
for num in nums2:
nums1.append(num)
nums1[:]=sorted(nums1[:m+n])
答案 1 :(得分:0)
列表是可变的,因此您可以创建您要查找的行为。您需要做的是为nums1中的特定索引分配新值。使用拼接时,实际上是在创建新列表。使用[].insert()
,[].pop()
,[].extend()
等列表函数来实现您正在寻找的功能。