Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package AmazonOA.Past_Tests;
- import org.w3c.dom.ls.LSOutput;
- import java.util.*;
- public class FindAllCombinationsSumToTarget {
- public static int findCombos(List<Integer> a, List<Integer> b , List<Integer> c, List<Integer> d, int target){
- SortedMap<Integer, Integer> mapAB = new TreeMap<>();
- //picking numbers from list A and B and summing, storing in sorted map
- for(int i: a){
- for(int j: b){
- mapAB.put(i + j, mapAB.getOrDefault(i+j,0) + 1);
- }
- }
- int count = 0;
- for(int i : c){
- for(int j : d){
- int difference = target - i - j; // we look for the difference
- Map<Integer, Integer> map = mapAB.headMap(difference + 1);
- if(map != null)
- count += map.size();
- }
- }
- return count;
- } //O(N^2)
- public static void main(String[] args){
- List<Integer> a = new ArrayList<>();
- List<Integer> b = new ArrayList<>();
- List<Integer> c = new ArrayList<>();
- List<Integer> d = new ArrayList<>();
- a.add(2);
- a.add(3);
- a.add(5);
- b.add(5);
- c.add(2);
- c.add(3);
- c.add(10);
- d.add(1);
- d.add(2);
- int target = 11;
- System.out.println(findCombos(a,b,c,d,target));
- List<Integer> a2 = new ArrayList<>();
- List<Integer> b2 = new ArrayList<>();
- List<Integer> c2 = new ArrayList<>();
- List<Integer> d2 = new ArrayList<>();
- a2.add(2);
- a2.add(3);
- b2.add(4);
- c2.add(2);
- c2.add(3);
- d2.add(1);
- d2.add(2);
- int target2 = 10;
- System.out.println(findCombos(a2,b2,c2,d2,target2));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement