BiruLyu
6/2/2017 - 11:06 PM

477. Total Hamming Distance.java

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;
    }
}