Two Out of Three
EasyArrayHash TableBit Manipulation
Solution
export function twoOutOfThree(nums1: number[], nums2: number[], nums3: number[]): number[] {
const counter = new Map<number, number>();
nums1.forEach((num) => {
const count = counter.get(num) ?? 0;
counter.set(num, count | 1);
});
nums2.forEach((num) => {
const count = counter.get(num) ?? 0;
counter.set(num, count | (1 << 1));
});
nums3.forEach((num) => {
const count = counter.get(num) ?? 0;
counter.set(num, count | (1 << 2));
});
const answer: number[] = [];
for (const [num, count] of counter.entries()) {
if ([3, 5, 6, 7].includes(count)) {
answer.push(num);
}
}
return answer;
}