这是我偶然发现的问题,困扰我半个小时之久:
有的时候我们会发现,对一个二维数组的某个位置进行赋值,但直接改变了一整列的值:
- 这是因为我们在定义dp的时候使用的时这样的:dp = n*[n*[0]]
- n个list的浅拷贝的连接,修改其中的任何一个元素会改变整个列表
我们可以改为:dp = [[0 for i in range(n)] for i in range(n)]即可解决问题
这是我偶然发现的问题,困扰我半个小时之久:
有的时候我们会发现,对一个二维数组的某个位置进行赋值,但直接改变了一整列的值:
- 这是因为我们在定义dp的时候使用的时这样的:dp = n*[n*[0]]
- n个list的浅拷贝的连接,修改其中的任何一个元素会改变整个列表
我们可以改为:dp = [[0 for i in range(n)] for i in range(n)]即可解决问题