Java: Find all the unique triplets such that sum of all the three elements equal to a specified number
36. Find triplets summing to given number
Write a Java program to find all the distinct triplets such that the sum of all the three elements [x, y, z (x ≤ y ≤ z)] equal to a specified number.
Sample array: [1, -2, 0, 5, -1, -4]
Target value: 2.
Pictorial Presentation:

Sample Solution:
Java Code:
// Import necessary classes from Java libraries.
import java.util.ArrayList;
import java.util.List;
// Define a class named Exercise36.
public class Exercise36 {
    // The main method for executing the program.
    public static void main(String[] args) {
        // Initialize an array of integers.
        int[] input = {1, -2, 0, 5, -1, -4};
        int target = 2;
        // Create an instance of Exercise36.
        Exercise36 r = new Exercise36();
        // Call the threeSum method and print the result.
        System.out.println(r.threeSum(input, target));
    }
    // Define a method named threeSum that takes an array of integers and an integer target as input.
    public List<List<Integer>> threeSum(int[] nums, int target) {
        // Create a List of Lists to store the triplets that sum up to the target.
        List<List<Integer>> my_List = new ArrayList<List<Integer>>();
        // Iterate through the elements of the input array.
        for (int i = 0; i < nums.length; i++) {
            for (int j = i; j < nums.length; j++) {
                for (int k = j; k < nums.length; k++) {
                    // Check if three distinct elements (i, j, k) sum up to the target.
                    if (i != j && j != k && i != k && (nums[i] + nums[j] + nums[k] == target)) {
                        // Create a List to store the triplet and add it to the result List.
                        List<Integer> inner_List = new ArrayList<Integer>(3);
                        inner_List.add(nums[i]);
                        inner_List.add(nums[j]);
                        inner_List.add(nums[k]);
                        my_List.add(inner_List);
                    }
                }
            }
        }
        // Return the List of triplets that satisfy the condition.
        return my_List;
    }
}
 Sample Output:
[[1, 5, -4], [-2, 5, -1]]
Flowchart:
 
For more Practice: Solve these Related Problems:
- Write a Java program to find all unique quadruplets whose sum equals a given number.
- Write a Java program to find all pairs of numbers whose sum is a perfect cube.
- Write a Java program to find all triplets where the product of the three numbers is a prime number.
- Write a Java program to count all unique triplets that sum up to zero.
Go to:
PREV : Find two elements with target sum.
NEXT :  Get anti-diagonals from square matrix.
Java Code Editor:
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
