目录 leetcode top100 刷题(位运算) 78. 子集 136. 只出现一次的数字 169. 多数元素 338. 比特位运算 461.汉明距离 leetcode top100 刷题(位运算) 78. 子集 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 输入: nums = [1,2,3] 输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []] 来源:力扣(LeetCode) 链接: https://leetcode-cn.com/problems/subsets 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 这个就是代数里面的幂集,首先考虑代数的方法。对于一个有 \(n\) 个数的列表,其幂集大小为 \(2^n\) 。我们可以采取这样的思路,即首先将这 \(2^n\) 个数字在列表中呈现出来,然后再将每个数字按照2进制位数为0或者1映射到子集中去,然后再将子集添加到幂集中。具体考虑映射的时候,我们先将每个数字转化为2进制,随后将二进制数字转化为字符列表,然后反转来补全‘1’,再然后继续再翻转(其实可以去掉这个翻转,不影响结果,纯粹为了数学上好看),然后将原集合映射到子集中去。 class Solution: def