返回信息流代码如下
```
class Solution(object):
def combinationSum3(self, k, n):
"""
:type k: int
:type n: int
:rtype: List[List[int]]
"""
self.result = []
self.combination(k,n,[],1)
return self.result
def combination(self,k,n,current,start):
if n==0 and k==0:
return self.result.append(current)
for i in range(start,10):
if start>n:break
current.append(i)
self.combination(k-1,n-i,current,i+1)
current.pop()
```
为什么返回的是[[],[],[]]呢
这是一条镜像帖。来源:北邮人论坛 / python / #16700同步于 2016/11/27
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
leetcode216出现的问题
luuuuuyib
2016/11/27镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
```python
return self.result.append([]+current) #或者return self.result.append(list(current))
```
这么神奇,为什么呢?
【 在 solosseason 的大作中提到: 】
: [md]
: ```python
: return self.result.append([]+current) #或者return self.result.append(list(current))
: ...................
【 在 luuuuuyib 的大作中提到: 】
: 这么神奇,为什么呢?
这是因为append(current)的时候是浅拷贝,仅仅传递了current的地址,没有传值,因此要改为深拷贝就可以了。
以下语句也可以
```python
#return self.result.append(copy.deepcopy(current))
return self.result.append(current[:])
```
好的,学习到了,非常感谢,我再好好琢磨琢磨append的用法
【 在 solosseason 的大作中提到: 】
: [md]
: 这是因为append(current)的时候是浅拷贝,仅仅传递了current的地址,没有传值,因此要改为深拷贝就可以了。
: 以下语句也可以
: ...................