美文网首页程序员
力扣 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