给定一个数组和目标数target,找出数组中a,b,c满足 a+b+c = target 的所有组合。
def sum_of_three(arr,target):assert len(arr)>=3,"len(arr) should >=3!"arr.sort()ans = set()for k,c in enumerate(arr):i,j = k+1,len(arr)-1while i<j:if arr[i]+arr[j]+c < target:i = i+1elif arr[i]+arr[j]+c > target:j = j-1else:ans.update({(arr[k],arr[i],arr[j])})i = i+1j = j-1return(list(ans))print(sum_of_three([-3,-1,-2,1,2,3],0))