ss444
BAN USERpublic static void main(String[] args){
int n = 12;
System.out.println("Ans: "+findSolution(n,0));
}
private static int findSolution(int n, int count){
int sqrt = (int) Math.sqrt(n);
if((n!=0) && (sqrt*sqrt <= n)){
System.out.print(sqrt+" ");
count++;
count = findSolution(n-(sqrt*sqrt),count);
}
return count;
}
Assuming the array is not sorted...
public static void main(String[] args){
int[] input = {2,3,5,7,9,8,6};
int sum = 11;
HashMap<Integer,Integer> resultMap = new HashMap<Integer, Integer>();
//Get the values in a HashMap - Count
for(int i=0;i<input.length;i++){
int key = (sum - input[i]) > input[i] ? input[i] : (sum -input[i]);
Integer val = resultMap.get(key) == null ? 0 : resultMap.get(key);
resultMap.put(key,++val);
}
//Remove Unwanted Pairs
Iterator it = resultMap.entrySet().iterator();
while(it.hasNext()){
Map.Entry<Integer,Integer> pair = (Map.Entry) it.next();
if(pair.getValue()!= 2){
it.remove();
}else{
pair.setValue(sum - pair.getKey());
}
}
//Print them all
for(Map.Entry<Integer,Integer> entry : resultMap.entrySet()){
System.out.println("Pairs Are: ("+ entry.getKey()+","+entry.getValue()+")");
}
}
Sorting makes it
. We shouldn't sort.
- ss444 March 13, 2015