VOOZH about

URL: https://www.geeksforgeeks.org/java/java-program-to-find-a-triplet-such-that-sum-of-two-equals-to-third-element/

⇱ Java Program to Find a triplet such that sum of two equals to third element - GeeksforGeeks


  • Courses
  • Tutorials
  • Interview Prep

Java Program to Find a triplet such that sum of two equals to third element

Last Updated : 23 Jul, 2025

Given an array of integers, you have to find three numbers such that the sum of two elements equals the third element.
Examples:

Input: {5, 32, 1, 7, 10, 50, 19, 21, 2}
Output: 21, 2, 19

Input: {5, 32, 1, 7, 10, 50, 19, 21, 0}
Output: no such triplet exist

Question source: Arcesium Interview Experience | Set 7 (On campus for Internship)

Simple approach:

Run three loops and check if there exists a triplet such that sum of two elements equals the third element.

Below is the implementation of the above approach:


Output
Numbers are: 5 7 2

Time complexity: O(n^3)
Auxiliary Space: O(1)
Efficient approach:

The idea is similar to Find a triplet that sum to a given value.

Step-by-step approach:

  • Sort the given array first.
  • Start fixing the greatest element of three from the back and traverse the array to find the other two numbers which sum up to the third element.
  • Take two pointers j(from front) and k(initially i-1) to find the smallest of the two number and from i-1 to find the largest of the two remaining numbers
  • If the addition of both the numbers is still less than A[i], then we need to increase the value of the summation of two numbers, thereby increasing the j pointer, so as to increase the value of A[j] + A[k].
  • If the addition of both the numbers is more than A[i], then we need to decrease the value of the summation of two numbers, thereby decrease the k pointer so as to decrease the overall value of A[j] + A[k].

Below image is a dry run of the above approach:

👁 Image

Below is the implementation of the above approach:


Output
numbers are 21 2 19

Time complexity: O(N^2) 
Auxiliary Space: O(1) as no extra space has been used.

Java Program to Find a triplet such that sum of two equals to third element using Binary Search:

  1. Sort the given array.
  2. Start a nested loop, fixing the first element i(from 0 to n-1) and moving the other one j (from i+1 to n-1).
  3. Take the sum of both the elements and search it in the remaining array using Binary Search.

Below is the implementation of the above approach:


Output
Numbers are: 2 5 7

Time Complexity: O(N^2*log N)
Auxiliary Space: O(1)

Please refer complete article on Find a triplet such that sum of two equals to third element for more details!

Comment
Article Tags: