w3resource

Java: Find all the unique triplets such that sum of all the three elements equal to a specified number

Java Array: Exercise-36 with Solution

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:

Java Array Exercises: Find all the unique triplets such that sum of all the three elements equal to a specified number

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:

Flowchart: Java exercises: Find all the unique triplets such that sum of all the three elements equal to a specified number

Java Code Editor:

Previous: Write a Java program to find the sum of the two elements of a given array which is equal to a given integer.
Next: Write a Java program to create an array of its anti-diagonals from a given square matrix.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://www.w3resource.com/java-exercises/array/java-array-exercise-36.php