class Solution(object):
def totalHammingDistance(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
if not nums :
return 0
res = 0
for i in range(32) :
bitCount = 0
for j in nums :
bitCount += (j >> i) & 1
res += bitCount * (len(nums) - bitCount)
return res
public class Solution {
public int totalHammingDistance(int[] nums) {
if(nums == null || nums.length == 1) return 0;
Arrays.sort(nums);
int len = nums.length;
int res = 0;
for (int i = 0; i < 32; i++) {
int bitCount = 0;
for(int j = 0; j < len; j++) {
bitCount += (nums[j] >> i) & 1;
}
res += bitCount * (len - bitCount);
}
return res;
}
}