博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode--078--子集(python)
阅读量:5072 次
发布时间:2019-06-12

本文共 953 字,大约阅读时间需要 3 分钟。

给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。

说明:解集不能包含重复的子集。

示例:

输入: nums = [1,2,3]

输出:
[
[3],
  [1],
  [2],
  [1,2,3],
  [1,3],
  [2,3],
  [1,2],
  []
]

 

思路:回溯,在循环中嵌套递归,递归自然就有了循环的特性

Solution().subsets([1,2,3])              

[[], [1], [1, 2], [1, 2, 3], [1, 3], [2], [2, 3], [3]]
1 class Solution:2     def subsets(self, nums: List[int]) -> List[List[int]]:3         res = []4         def recursive(start,num):5             res.append(num)6             for i in range(start,len(nums)):7                 recursive(i+1,num+[nums[i]])8         recursive(0,[])9         return res

两层for,每次让res中已有的子集添加当前的num形成新的子集

[[], [1], [2], [1, 2], [3], [1, 3], [2, 3], [1, 2, 3]]
1 class Solution:2     def subsets(self, nums: List[int]) -> List[List[int]]:3         res = [[]]4         for num in nums:5             for temp in res[:]:6                 t = temp[:]7                 t.append(num)8                 res.append(t)9         return res

 

转载于:https://www.cnblogs.com/NPC-assange/p/11457754.html

你可能感兴趣的文章
基础教程
查看>>
外观模式
查看>>
shell 父子shell 调用
查看>>
登录后记住用户名-JS解决方案
查看>>
Codeforces 785D Anton and School - 2 (组合数相关公式+逆元)
查看>>
初级安全入门——安全漏洞的检测与利用
查看>>
css position:relative 在IE6, 7下有bug
查看>>
深入的聊聊Android消息推送这件小事
查看>>
linux_sudo使用
查看>>
git remote: HTTP Basic: Access denied 错误解决办法
查看>>
Couldn't connect to host, port: smtp.163.com, 25; timeout -1;
查看>>
Swift :?和 !
查看>>
git工具的应用
查看>>
吴裕雄--天生自然 JAVASCRIPT开发学习:测试 jQuery
查看>>
《悟透javascript》中的知识点
查看>>
12个有趣的C语言面试题
查看>>
Java的URL来下载网页源码
查看>>
物联网架构成长之路(31)-EMQ基于HTTP权限验证
查看>>
java static用法详解
查看>>
《码出高效 Java开发手册》第三章 代码风格
查看>>