来自对LeetCode39题,组合总和的一点思考
在写回溯的时候,往往需要添加path的一个拷贝,即res.append(path[:]),然后最后回溯的时候再path.pop(),
但是如果path + [num],就不用拷贝复制以及pop操作了。
![](https://i-blog.csdnimg.cn/blog_migrate/9aee6435995abb0df23ae88c7636f3c7.png)
class Solution:
def combinationSum(self, candidates: List[int], target: int) -> List[List[int]]:
#这里有两种操作,一种是把path作为参数传递进去,然后用path + [candidates[i]]操作,
#相当于创建了一个新的列表,最后就不用path.pop()操作,也不用res.append(path[:])
#即不用append一个path的拷贝