Java: Find all triplets equal to a given sum in a unsorted array of integers
Java Array: Exercise-74 with Solution
Write a Java program to find all triplets equal to a given sum in an unsorted array of integers.
Example:
Input :
nums = { 1, 6, 3, 0, 8, 4, 1, 7 }
Output:
Triplets of sum 7
(0 1 6)
(0 3 4)
Sample Solution:
Java Code:
// Import the necessary Java classes.
import java.util.Arrays;
// Define the 'solution' class.
class solution {
// Define a method to find and print all triplets with a given sum.
public static void find_and_print_all_Triplets(int[] nums, int sum, int alen)
{
System.out.println("\nTriplets of sum " + sum);
// Iterate through the array, leaving space for at least three elements.
for (int i = 0; i <= alen - 3; i++)
{
int k = sum - nums[i];
int l_index = i + 1, h_index = nums.length - 1;
// Use a two-pointer approach to find triplets that sum up to 'k'.
while (l_index < h_index)
{
if (nums[l_index] + nums[h_index] < k) {
l_index++;
}
else if (nums[l_index] + nums[h_index] > k) {
h_index--;
}
else {
// Print the triplet and adjust the pointers.
System.out.println("(" + nums[i] + " " + nums[l_index] + " " + nums[h_index] + ")");
l_index++;
h_index--;
}
}
}
}
// Define the main method for running the program.
public static void main(String[] args)
{
// Initialize the array and its length.
int[] nums = { 1, 6, 3, 0, 8, 4, 1, 7 };
int alen = nums.length;
System.out.println("\nOriginal array: " + Arrays.toString(nums));
// Sort the array in ascending order.
Arrays.sort(nums);
int sum = 7;
// Call the 'find_and_print_all_Triplets' method to find and print triplets with the given sum.
find_and_print_all_Triplets(nums, sum, alen);
}
}
Sample Output:
Original array: [1, 6, 3, 0, 8, 4, 1, 7] Triplets of sum 7 (0 1 6) (0 3 4)
Flowchart:
Java Code Editor:
Previous Java Exercise: Write a Java program to sort a given array of distinct integers where all its numbers are sorted except two numbers.
Next Java Exercise: Largest gap between sorted elements of an array.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
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://w3resource.com/java-exercises/array/java-array-exercise-74.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics