void go(int[] a, int target, List<List<Integer>> list, List<Integer> l, int k) {
        if (k > a.length)
            return;
        if (target < 0)
            return;
        if (target == 0) {
            if (list.stream().filter(e -> e.equals(l)).count() == 0)
                list.add(l);
            return;
        }
        for (int i = k; i < a.length; i++) {
            List<Integer> ll = new ArrayList<>(l);
            ll.add(a[i]);
            go(a, target - a[i], list, ll, i + 1);
        }
    }
Why Did you create this class? what does it do?
src/problems/medium/CombinationSum2.java