这题比较经典
可以看到 如果是采用二进制编码的解法速度是很快的
# -*- coding: utf-8 -*-
# @Time : 2022/09/07 8:27
# @Author : WuXuanNlp
# @FileName: 78. 子集.py
# @Software: PyCharm
# @Blog :https://github.com/WuXuanNlp
from typing import List
class Solution:
def subsets(self, nums: List[int]) -> List[List[int]]:
n = len(nums)
res = []
for i in range(2 ** n):
num_bin = bin(i)[2:][::-1]
# print(num_bin)
tmp = [nums[k] for k in range(len(num_bin)) if num_bin[k] == '1']
# print(tmp)
res.append(tmp)
return res
if __name__ == '__main__':
p = Solution()
nums = [1,2,3]
print(p.subsets(nums=nums))