美文网首页程序员
力扣 477 汉明距离总和

力扣 477 汉明距离总和

作者: zhaojinhui | 来源:发表于2020-10-20 09:54 被阅读0次

题意:给定一个array找出所有的位0与1不同的总和

思路:遍历数组,统计每一位的0与1的数量,并把每一位0与1的数量的乘积加入结果,计算完32位之后,结果即为所求

思想:位运算

复杂度:时间O(n*32),空间O(1)

class Solution {
    public int totalHammingDistance(int[] nums) {
        int sum = 0;
        int n = nums.length;
        for(int j=0;j<32;j++) {
            int cnt = 0;
            for(int i=0;i<nums.length;i++) {
                cnt += (nums[i] >> j) & 1;
            }
            sum += (n-cnt) * cnt;
        }
        return sum;
    }
}

相关文章

网友评论

    本文标题:力扣 477 汉明距离总和

    本文链接:https://www.haomeiwen.com/subject/ggirmktx.html