It falls over if either of your lists contain negative numbers or Integer.MAX_VALUE. The latter is an easy fix but I lift it out for the sake of simplicity.
static List<Integer> doppleganger(List<Integer> A, List<Integer> B)/> {
BitSet bits = toBits(A);
bits.and(toBits(B)/>);
List<Integer> C = new ArrayList<Integer>();
int i = -1;
while ((i = bits.nextSetBit(i+1)) != -1) {
C.add(i);
}
return C;
}
static BitSet toBits(List<Integer> L) {
BitSet bits = new BitSet();
for(int i : L) bits.set(i, true);
return bits;
}

New Topic/Question
Reply





MultiQuote











|