﻿ Python: Find unique triplets whose three elements gives the sum of zero from an array of n integers - w3resource

# Python: Find unique triplets whose three elements gives the sum of zero from an array of n integers

## Python Basic - 1: Exercise-4 with Solution

Write a Python program to identify unique triplets whose three elements sum to zero from an array of n integers.

Visual Presentation:

Sample Solution:

Python Code :

``````# Define a function named 'three_sum' that takes a list of numbers 'nums' as a parameter.
def three_sum(nums):
# Initialize an empty list to store the results.
result = []
# Sort the input list in ascending order.
nums.sort()

# Iterate through the list up to the third-to-last element.
for i in range(len(nums) - 2):
# Skip duplicate values at the current position.
if i > 0 and nums[i] == nums[i - 1]:
continue

# Set two pointers, 'l' and 'r', to find the other two elements in the triplet.
l, r = i + 1, len(nums) - 1

# Perform a two-pointer search to find triplets with the sum equal to zero.
while l < r:
s = nums[i] + nums[l] + nums[r]

if s > 0:
r -= 1
elif s < 0:
l += 1
else:
# Found a triplet with the sum equal to zero, add it to the result.
result.append((nums[i], nums[l], nums[r]))

# Remove duplicates in the left and right pointers.
while l < r and nums[l] == nums[l + 1]:
l += 1
while l < r and nums[r] == nums[r - 1]:
r -= 1

# Move the pointers towards the center.
l += 1
r -= 1

# Return the final result containing unique triplets.
return result

# Create a list of numbers.
x = [1, -6, 4, 2, -1, 2, 0, -2, 0]

# Call the 'three_sum' function with the list and print the result.
print(three_sum(x))
``````

Sample Output:

```[(-6, 2, 4), (-2, 0, 2), (-1, 0, 1)]
```

Explanation:

The above code defines a function "three_sum()" that takes a list of numbers as input. It finds unique triplets in the list whose sum is equal to zero. The function uses a sorted list and employs a two-pointer approach to efficiently search for triplets. The code then calls this function with a specific list of numbers and prints the resulting unique triplets.

Flowchart:

Python Code Editor :

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.

﻿