# -*- coding: utf-8 -*-
"""
Created on Sat Jul 17 17:23:50 2021
@author: luogantt
"""
class Solution(object):
def cartesian_product(self,a,b):
l = [] #空的集合
for x in a: #x为a中所有的成员
for y in b: #y为b中所有的成员
kk=str(x)+str(y)
# print(kk)
if len(set(kk))==len(kk):
l.append(kk) #将所有可能的“有序对”加到“空集合”中
return l
def threeSum(self, nums,n):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""
a=list(range(len(nums)))
c=a
for p in range(n-1):
c=self.cartesian_product(c,a)
temp=[]
for k in c:
t1=list(k)
t1.sort()
t2=''.join(t1)
# print(t2)
if t2 not in temp:
temp.append(t2)
all_combin=[]
for p in temp:
p1=[int(m) for m in p]
count=0
for q in p1 :
count+=nums[q]
if count==0:
# print(p1)
all_combin.append([nums[k] for k in p1])
return all_combin
nums = [1,0,-1,0,-2,2]
c=Solution()
import time
t1=time.time()
#计算几个数之和,下面就填几
c1=c.threeSum( nums,4)
print(time.time()-t1)
print(c1)