首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python递归-数组中没有参数变量的所有子集怎么办?

Python递归-数组中没有参数变量的所有子集怎么办?
EN

Stack Overflow用户
提问于 2018-08-16 07:43:41
回答 1查看 0关注 0票数 0

下面是获取数组所有子集的一些代码:

代码语言:txt
复制
def subsets(arr, seq = []):
    if arr == []:
         return [seq]
    return subsets(arr[1:], seq) + subsets( arr[1:],seq + [arr[0]])

print subsets([1, 2, 3])
# Here is the output: [[], [3], [2], [2, 3], [1], [1, 3], [1, 2], [1, 2, 3]]

问题:1。这有效吗? 我将值seq传递给许多堆栈.... 2.如何使用一个参数(arr param)创建递归解决方案3.是否存在针对此问题的非递归解决方案? 4.所有这些方法中哪一种最快,最好在面试中出现?

EN

回答 1

Stack Overflow用户

发布于 2018-08-16 17:09:25

实际上,如果你搜索“迭代所有子集”,你会发现很多解决方案。在许多语言中,迭代比递归运行得更快。Python也不例外。一些函数式语言可以自动为某些递归函数(尾叫递归)生成迭代代码。Python没有这样做,Guido已经指出了这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100002224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档