Amazon Interview Question
SDE1sCountry: India
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Scanner;
public class Sumis10 {
public static void main(String[] args) {
// TODO Auto-generated method stu
int[] arr = new int[11];
for (int j = 1; j <= 10; j++) {
arr[j] = j;
}
int sum = 10;
HashMap<Integer, Integer> hm = new HashMap<>(arr.length);
for (int j = 0; j < arr.length; j++) {
hm.put(arr[j], sum - arr[j]);
}
Scanner sc = new Scanner(System.in);
String a = sc.next();
sc.close();
// System.out.println(a);
String[] numberarrstream = a.split(",");
ArrayList<Integer> differeneLeft = new ArrayList<>();
int streamNumber = 0;
boolean is_found = false;
for (String s : numberarrstream) {
streamNumber = Integer.parseInt(s);
for (Integer number : differeneLeft) {
if (streamNumber == number) {
is_found = true;
break;
}
}
if (is_found)
break;
if (hm.containsKey(streamNumber)) {
int differenceleft = hm.get(streamNumber);
differeneLeft.add(differenceleft);
}
}
System.out.println("First Combination of number 10 " + ">>>" + streamNumber);
}
}
public class SumIsten
{
private int [] series;
public SumIsten ()
{
series = new int[11];
}
public void IsTen(int n)
{
if(series[10-n]!=0)
{
System.out.println("true");
return;
}
else{
series[n]= series[n]+1;
}
}
public void printSoFar()
{for(int i=0;i<series.length;i++)
{
for(int j=0;j<series[i];j++)
System.out.println(i);
}
}
}
just deal with numbers <=10 since only +ve numbers are incoming.
int array[]={6,4,2,9,1,8,7,3,5};
HashMap<Integer,Boolean> map=new HashMap<Integer,Boolean>();
for(int i=0;i<array.length;i++)
{
if(array[i]>10)continue;
if(map.containsKey(10-array[i]))
{
System.out.println("found " + array[i] + " and "+ (10-array[i]));
}
map.put(array[i], true);
}
Simply use a Hashtable
- Ashish July 25, 2016