Find XOR Sum of All Pairs Bitwise AND LeetCode solution in JavaScript

1
var getXORSum = function (arr1, arr2) {
2
// (x & 2) xor (x & 3) =[ !(x&2) & (x&3) ] OR [ (x&2) & !(x&3) ]
3
// = [ (!x || !2 ) & (x&3) ] OR [ (x&2) & (!x || !3) ]
4
// = [ (!x || !2) & x & 3 ] OR [ x & 2 & (!x || !3) ]
5
// = (!2 & x & 3 ) || (x & 2 & !3)
6
// = x & [ (!2 & 3) || (!3 & 2) ]
7
// = x & (2 XOR 3)
8
// const ans = (2 XOR 3 XOR....) in arr2
9
// The same principle: x, y,z... in arr1
10
// res = (x & ans) XOR (y & ans) XOR .....
11
// = ans & (x XOR y XOR z .......)
12
// Finally: res = (XOR: arr1) AND (XOR: arr2);
13
var xor1 = arr1.reduce((acc, cur) => acc ^ cur);
14
var xor2 = arr2.reduce((acc, cur) => acc ^ cur);
15
return xor1 & xor2;
16
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0