| 1234567891011121314151617181920212223 | func totalHammingDistanceSlow(nums []int) (dist int) {	n := len(nums)	for i := 0; i < n-1; i++ {		for j := i + 1; j < n; j++ {			dist += bits.OnesCount32(uint32(nums[i] ^ nums[j]))		}	}	return}func totalHammingDistance(nums []int) (dist int) {	n := len(nums)	for b := 1 << 31; 1 <= b; b >>= 1 {		k := 0		for _, i := range nums {			if b&i == 0 {				k++			}		}		dist += k * (n - k) // At pos b, k 0s and n-k 1s inc k*(n-k) dist	}	return}
 |