# 三数之和
def three_sum(arr, target):
num = len(arr)
if num < 3:
return []
arr = sort(arr)
res = []
# k = num - 1
for i in range(num - 2):
if i > 0 and num[i] == num[i - 1]:
continue
k, p = i + 1, num - 1
while k < p:
if arr[i] + arr[j] + arr[k] == target:
res.append([arr[i], arr[j] , arr[k]])
while k < p and arr[k] == arr[k + 1]:
k += 1
while k < p and arr[p] == arr[p - 1]:
p -= 1
k += 1
p -= 1
elif arr[i] + arr[j] + arr[k] > target:
p -= 1
else:
k += 1
return res
leetcode 三数之和
于 2024-04-02 11:23:34 首次发布