LeetCode刷题笔记第78题:子集
想法:
列表中元素不重复,要返回列表中元素的所有子集。空集是所有集合的子集,先创建一个空列表作为空集的子集列表ans,循环遍历列表中的元素,将当前元素与子集列表中的元素进行加法运算,获得新的子集并添加入子集列表中,直至循环结束即可获得所有子集。
时间复杂度
O
(
n
∗
2
n
)
O(n*2^n)
O(n∗2n)
空间复杂度O(n)
class Solution:
def subsets(self, nums: List[int]) -> List[List[int]]:
ans=[[]]
for i in nums:
for j in range(len(ans)):
ans.append(ans[j]+[i])
return ans