發現這個問題在于LeetCode寫算法時明明和題解一模一樣但結果就是不對,排查發現問題出在定義數組上
我們先來看兩個數組:
兩個數組看似完全一緻,使用 == 也輸出True
但使用起來卻不一緻,将兩個數組的【1,1】位置設定值,可以看到a數組将【0,1】和【1,1】位置都設定成了1,而b數組則是正确的将【1,1】位置設定為1
根據我的猜測,使用 * 來定義二維數組時會複制之前的一維數組,即一維資料都會指向同一位址,每一行都是一樣的。是以
[[0]*3]*2
并不能當做我們所熟知的二維數組,建議以後定義二維數組盡量使用
b = [[0]*3 for _ in range(2)]
的方式。