Company: Microsoft, Flipkart, Carwale, Amazon
Question:
import java.lang.*;
import java.io.*;
class GFG {
public static void main (String[] args) {
Scanner sc = new Scanner (System.in);
int m = sc.nextInt();
for(int mi=0;mi<m;mi++){
int n1=sc.nextInt();
int n2=sc.nextInt();
int []a1= new int[n1];
for(int a1_i=0;a1_i<n1;a1_i++){
a1[a1_i]=sc.nextInt();
}
check(a1,n1,n2);
}
}
public static void check(int [] a, int n,int sum){
boolean [] binmap= new boolean[100000];
int count=0;
for(int i=0;i<n;i++){
int temp=sum-a[i];
if(temp>=0 && binmap[temp]){
count++;
}
binmap[a[i]]=true;
}
if(count>=1){System.out.println("Yes");}
else{System.out.println("No");}
}
}
Question:
Given an array A[] of n numbers and another number x, determine whether or not there exist two elements in A whose sum is exactly x.
Input:
The first line of input contains an integer T denoting the number of test cases.
The first line of each test case is N and X,N is the size of array.
The second line of each test case contains N integers representing array elements C[i].
Output:
The first line of each test case is N and X,N is the size of array.
The second line of each test case contains N integers representing array elements C[i].
Output:
Print "Yes" if there exist two elements in A whose sum is exactly x, else "No" without quotes.
Constraints:
1 ≤ T ≤ 200
1 ≤ N ≤ 200
1 ≤ C[i] ≤ 1000
Example:
1 ≤ N ≤ 200
1 ≤ C[i] ≤ 1000
Example:
Input:
2
6 16
1 4 45 6 10 8
5 10
1 2 4 3 6
2
6 16
1 4 45 6 10 8
5 10
1 2 4 3 6
Output:
Yes
Yes
Yes
Yes
CODE:
import java.util.*;
import java.lang.*;
import java.io.*;
class Solution {
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
int m = sc.nextInt();
for(int mi=0;mi<m;mi++){
int size= sc.nextInt();
int tot= sc.nextInt();
int count=0;
int [] ar= new int [size];
for(int i=0;i<size;i++){
ar[i]=sc.nextInt();
}
for(int j=0;j<size;j++){
for(int k =0;k<size;k++){
if(ar[j]+ar[k]==tot){count++;}
}
}
if(count>=1){System.out.println("Yes");}
else{System.out.println("No");}
}
}
}
EXECUTION TIME:0.21s
CODE B: Using Binary Hash-Map via a boolean array
import java.util.*;import java.lang.*;
import java.io.*;
class GFG {
public static void main (String[] args) {
Scanner sc = new Scanner (System.in);
int m = sc.nextInt();
for(int mi=0;mi<m;mi++){
int n1=sc.nextInt();
int n2=sc.nextInt();
int []a1= new int[n1];
for(int a1_i=0;a1_i<n1;a1_i++){
a1[a1_i]=sc.nextInt();
}
check(a1,n1,n2);
}
}
public static void check(int [] a, int n,int sum){
boolean [] binmap= new boolean[100000];
int count=0;
for(int i=0;i<n;i++){
int temp=sum-a[i];
if(temp>=0 && binmap[temp]){
count++;
}
binmap[a[i]]=true;
}
if(count>=1){System.out.println("Yes");}
else{System.out.println("No");}
}
}
EXECUTION TIME:0.19s
Comments
Post a Comment