大家好
最近在刷leetcode 写到一题给出一组数列 求所有permutations的可能
https://leetcode.com/problems/permutations/description/
我的code是这样的,主体无穷递回的方式求解
class Solution:
def getSolution(self, x):
cach = []
result = []
self.permutations(x, cach, result)
return result
def permutations(self, x, cach, result):
if len(x) == 0:
result.append(cach)
for i in range(len(x)):
cach.append(x[i])
self.permutations(x[:i]+x[i+1:], cach, result)
cach.pop()
但我发现在上色部分append完的result在下一次append前他的值都会自动被改变
而我google了使用一样解法的code,发现只要将append(cach)改成append(cach+[])
这样的输出就不会有值被改变的问题
我查了半天找不到类似的解释 不太知道+[]的用意是什么
所以来这边请教大家
先谢谢大家的回答了!