您的位置:首页 > 其它

leetcode之Subsets II

2015-10-17 14:58 405 查看
接上次的Subsets,这次的改动就是先不去除重复元素,等到了最后的时候再去除,大体代码结果差不多。前面把set(nums)去除重复给去掉了。后面不可以用list(set())的方法去去除重复,因为类型是list[list],不可hash。代码如下:

class Solution(object):
def subsetsWithDup(self, nums):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""
def ppend(list1, n):
if list1 == []:
return

else:
#需要一个新的变量来承载list1,不可直接用 = 方法,会导致改变原有的值
m = []
for i in list1:
m.append(i)
m.append(n)
return m

nums = sorted(nums)
listall = [[]]
if nums == []:
return listall
else:
for i in nums:
for j in range(len(listall)):
listall.append(ppend(listall[j],i))
m = []
for i in listall:
if i not in m:
m.append(i)
return m
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Subsets leetcode hash