我是编程新手,正在尝试 Leetcode。该问题要求将答案存储在 nums1 中。当我打印 nums1 时,标准输出显示正确答案,但输出不一样?
class Solution(object):
def merge(self, nums1, m, nums2, n):
"""
:type nums1: List[int]
:type m: int
:type nums2: List[int]
:type n: int
:rtype: None Do not return anything, modify nums1 in-place instead.
"""
for x in range(n):
nums1.remove(0)
nums1 = nums1 + nums2
nums1.sort()
print(nums1)
这就是它所显示的:
LeetCode 只记住初始
nums1
列表的内存引用,因此如果使用 nums1 = nums1 + nums2
更新它,原始数组将不会被更新,而是创建一个新的引用。奇怪,我知道。
解决此问题的方法是使用
nums1.extend(nums2)
来修改列表,而不是 nums1 = nums1 + nums2
。