题目的内容如下
解答:这道题目一看就是入门级搜索题,十分简单,DFS一遍即可。
DFS本来就是一个对栈的操作,也就是说你任意一个DFS理论上都是可以用栈来实现,只不过是代码的复杂程度不用罢了,以下代码也可以改写成完全用栈来实现的,有兴趣的同学可以去试试,应该也是不复杂的。本文为了简单起见,用了个递归+栈。
代码如下,有问题欢迎留言。
class Solution:
def dfs(self,pos,k,n):
# 参数解释:pos为当前遍历到的位置,k是还需要选择k个,n是总长度
for pos in range(pos,n-k+1):
self.vis.append(pos+1)
if k-1 == 0:
self.ret.append(self.vis[:])
self.vis.pop()
continue