Find All Four Sum Numbers Java
- Get link
- X
- Other Apps
PROGRAM TO FIND FOUR ELEMENTS THAT SUM TO A GIVEN VALUE
import
java.util.HashMap;
class
MAIN {
static
class
pair {
int
first, second;
public
pair(
int
first,
int
second)
{
this
.first = first;
this
.second = second;
}
}
// The function finds four elements
// with given sum X
static
void
findFourElements(
int
arr[],
int
n,
int
X)
{
// Store sums of all pairs in a hash table
HashMap<Integer, pair> mp
=
new
HashMap<Integer, pair>();
for
(
int
i =
0
; i < n -
1
; i++)
for
(
int
j = i +
1
; j < n; j++)
mp.put(arr[i] + arr[j],
new
pair(i, j));
// Traverse through all pairs and search
// for X - (current pair sum).
for
(
int
i =
0
; i < n -
1
; i++) {
for
(
int
j = i +
1
; j < n; j++) {
int
sum = arr[i] + arr[j];
// If X - sum is present in hash table,
if
(mp.containsKey(X - sum)) {
// Making sure that all elements are
// distinct array elements and an
// element is not considered more than
// once.
pair p = mp.get(X - sum);
if
(p.first != i && p.first != j
&& p.second != i && p.second != j) {
System.out.print(
arr[i] +
", "
+ arr[j] +
", "
+ arr[p.first] +
", "
+ arr[p.second]);
return
;
}
}
}
}
}
// Driver Code
public
static
void
main(String[] args)
{
int
arr[] = {
10
,
20
,
30
,
40
,
1
,
2
};
int
n = arr.length;
int
X =
91
;
// Function call
findFourElements(arr, n, X);
}
}
OUTPUT
20, 30, 40, 1
- Get link
- X
- Other Apps
Comments
Post a Comment