LeetCode 78. Subsets
来源:互联网 发布:mac ai的zh cn汉化包 编辑:程序博客网 时间:2024/06/01 22:27
题目描述:
可与二进制数对应起来。1表示subset中有某位置的元素。对有n个元素的nums,共有0~111...11(n个1)即 2**n个subsets。Given a set of distinct integers, nums, return all possible subsets.
Note: The solution set must not contain duplicate subsets.
For example,
If nums =[1,2,3]
, a solution is:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]
观察这2**n个二进制数,都是先出现0后出现1,并且数个0和数个1交替出现。以n=3为例:
000
001
010
011
100
101
110
111
左边最高位的周期为2**n即为2**3 = 8,对第j行,当j % 2^n >= 2^(n-1)时,相应为的元素为1。可将各行每个位置对应的周期存到数组里生成相应的2^n个subsets
class Solution(object): def subsets(self, nums): ans = [] mark = [2] for i in range(1,len(nums)): mark.append(2*mark[i-1])#按照二进制降序的规律写的 n = mark[len(nums)-1] for i in range(0,n): tmp = [] for j in range(0,len(nums)): if i % mark[j] >= mark[j]/2: tmp.append(nums[j]) ans.append(tmp) return ans
0 0
- LeetCode 78. Subsets
- [LeetCode]78.Subsets
- LeetCode --- 78. Subsets
- [Leetcode] 78. Subsets
- [leetcode] 78.Subsets
- 【leetcode】78. Subsets
- Leetcode 78. Subsets
- 78. Subsets LeetCode
- [leetcode] 78. Subsets
- leetcode 78. Subsets
- Leetcode 78. Subsets
- LeetCode *** 78. Subsets
- LeetCode 78. Subsets
- LeetCode-78.Subsets
- leetcode 78. Subsets
- LeetCode - 78. Subsets
- [LeetCode] 78. Subsets
- 【题解】Leetcode.78.Subsets
- 如何跳转到另一个activity之后前一个activity的线程仍在运行?并且后一个activity可以使用前一个activity中的变量
- Android获取未接来电失败
- java.lang.NullPointerException Android develop
- 项目管理——多项目协同管理
- 【JZOJ 3806】 小X 的道路修建
- LeetCode 78. Subsets
- 在fragment中调用虚拟键盘,如何将底部那一栏顶上去
- 自动控制
- JavaScript笔记之第五天
- android 字体颜色
- 欢迎使用CSDN-markdown编辑器
- 05建造者模式
- 监听截屏(HOME+Power)事件
- A1035. 素数之和