Choose two elements from the given array such that their sum is not present in any of the arrays
Last Updated :
18 Jul, 2022
Given two arrays A[] and B[], the task is to choose two elements X and Y such that X belongs to A[] and Y belongs to B[] and (X + Y) must not be present in any of the array.
Examples:
Input: A[] = {3, 2, 2}, B[] = {1, 5, 7, 7, 9}
Output: 3 9
3 + 9 = 12 and 12 is not present in
any of the given arrays.
Input: A[] = {1, 3, 5, 7}, B[] = {7, 5, 3, 1}
Output: 7 7
Approach: Choose X as the maximum element from A[] and Y as the maximum element from B[]. Now, it is obvious that (X + Y) will be greater than the maximum of both the arrays i.e. it will not be present in any of the arrays.
Below is the implementation of the above approach:
C++
#include <bits/stdc++.h>
using namespace std;
void findNum( int a[], int n, int b[], int m)
{
int x = *max_element(a, a + n);
int y = *max_element(b, b + m);
cout << x << " " << y;
}
int main()
{
int a[] = { 3, 2, 2 };
int n = sizeof (a) / sizeof ( int );
int b[] = { 1, 5, 7, 7, 9 };
int m = sizeof (b) / sizeof ( int );
findNum(a, n, b, m);
return 0;
}
|
Java
class GFG
{
static int max_element( int a[], int n)
{
int m = Integer.MIN_VALUE;
for ( int i = 0 ; i < n; i++)
m = Math.max(m, a[i]);
return m;
}
static void findNum( int a[], int n,
int b[], int m)
{
int x = max_element(a, n);
int y = max_element(b, m);
System.out.print(x + " " + y);
}
public static void main(String args[])
{
int a[] = { 3 , 2 , 2 };
int n = a.length;
int b[] = { 1 , 5 , 7 , 7 , 9 };
int m = b.length;
findNum(a, n, b, m);
}
}
|
Python3
def findNum(a, n, b, m) :
x = max (a);
y = max (b);
print (x, y);
if __name__ = = "__main__" :
a = [ 3 , 2 , 2 ];
n = len (a);
b = [ 1 , 5 , 7 , 7 , 9 ];
m = len (b);
findNum(a, n, b, m);
|
C#
using System;
class GFG
{
static int max_element( int []a, int n)
{
int m = int .MinValue;
for ( int i = 0; i < n; i++)
m = Math.Max(m, a[i]);
return m;
}
static void findNum( int []a, int n,
int []b, int m)
{
int x = max_element(a, n);
int y = max_element(b, m);
Console.Write(x + " " + y);
}
public static void Main()
{
int []a = { 3, 2, 2 };
int n = a.Length;
int []b = { 1, 5, 7, 7, 9 };
int m = b.Length;
findNum(a, n, b, m);
}
}
|
Javascript
<script>
function findNum(a, n, b, m)
{
var x = a.reduce( function (a, b) { return Math.max(a, b); });
var y = b.reduce( function (a, b) { return Math.max(a, b); });
document.write(x + " " + y);
}
var a = [ 3, 2, 2 ];
var n = a.length;
var b = [ 1, 5, 7, 7, 9 ]
var m = b.length;
findNum(a, n, b, m);
</script>
|
Time Complexity: O(n)
Auxiliary Space: O(1)
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...