Given a set of distinct integers, nums, return all possible subsets (the power set).
Note: The solution set must not contain duplicate subsets.
Example:
Input: nums = [1,2,3] Output: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ]
题目大意:输出一个list的全部子数组
思路:遍历数据:第一次是空[[]],第二次把第一次的空加上一个元素,和上一次的合并一起[[],[1]],重复执行上面操作,[[],[1],[2],[1,2]].....
class Solution(object):
def subsets(self, nums):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""
res=[[]]
for i in nums:
temp=[]
for j in res:
temp.append(j+[i])
res+=(temp)
return res
Given a collection of integers that might contain duplicates, nums, return all possible subsets (the power set).
Note: The solution set must not contain duplicate subsets.
Example:
Input: [1,2,2] Output: [ [2], [1], [1,2,2], [2,2], [1,2], [] ]
题意:如果有重复,去除重复的
解法:给每个排序,判断是否已经在其中
class Solution(object):
def subsetsWithDup(self, nums):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""
result=[[]]
#result_set=set()
for i in nums:
temp=[]
temp_set=[]
for j in result:
temp_temp=j+[i]
temp_temp=sorted(temp_temp)
if(temp_temp in temp or temp_temp in result):
continue
temp.append(temp_temp)
#print(temp)
result+=temp
return result