您的位置:首页 > 其它

LeetCode-47-Permutations II 递归+dict

2017-09-16 17:57 489 查看
跟上个题差不多,只不过每次我都用set进行了一次Unique操作,然后TLE了。

然后我就加了个dict优化一下,头上数字相同的情况下就不进行递归了,然后就A了

class Solution(object):
def permuteUnique(self, nums):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""
Len=len(nums)
if Len==0:return []
if Len==1:return [nums]
ansSet=set()
used={}
for i in range(0,Len):
curC=nums[i]
if curC in used:continue
used[curC]=1
nextS=nums[:i]
nextS.extend(nums[i+1:])
returnS=self.permuteUnique(nextS)
for j in returnS:
curList=[curC]
curList.extend(j)
ansSet.add(tuple(curList))
return list(ansSet)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: