代码块
- 地址引用与值引用
python机制的问题,默认地址引用而非值引用,ans.append(stk) 的话,后面修改stk 会使得ans中的值变化。
ans = []
stk = [1,2,3]
ans.append(stk)
# 此时 ans = [[1,2,3]]
stk = [3,4,5]
# 此时 ans = [[3,4,5]]
#ans.append(stk[:]) 此时是值引用
#二维数组的构建,使用 arr = [[0] * n] * m 构造的二维数组是有问题的, 可以采用 arr = [[0] * n for _ in range(m)] 来构造 m*n 大小的数组
arr = [[0] * n for _ in range(m)]
- 在leetcode本地vs code运行时候报错。NameError: name ‘List’ is not defined
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
pass
在头部导如typing模块就行了参考
from typing import List