巧用图论知识解数组汉明距离总和

Posted 秦枫-_-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了巧用图论知识解数组汉明距离总和相关的知识,希望对你有一定的参考价值。

在这里插入图片描述
其实就是图论里边的偶图,例如:当只有所有数都是0或1的时候,0和1看成两个分支 0为X分支 1为Y分支 求边数,0和1连边才有汉明距

离,同一分支不能互连 按位运算把所有nums[i]某一位的0和1看成两个分支 0为X分支 1为Y分支 求边数,0和1连边才有汉明距离,同一分

支不能互连

在这里插入图片描述

class Solution {
    public int totalHammingDistance(int[] nums) {
        int res=0;
        int []digit=new int[32];
        for(int i=0;i<nums.length;i++){
            int idx=0;
            while(nums[i]!=0){
             digit[idx]+=nums[i]&1;
             idx++;
             nums[i]>>=1;
            }
        }
        for(int i=0;i<32;i++){
            res+=digit[i]*(nums.length-digit[i]);
        }
     
      return res;
    }

}

以上是关于巧用图论知识解数组汉明距离总和的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode 477.汉明距离总和

LeetCode 0477. 汉明距离总和

《LeetCode之每日一题》:50.汉明距离总和

477. 汉明距离总和

477 Total Hamming Distance 汉明距离总和

LeetCode 477 汉明距离总和[数学 异或] HERODING的LeetCode之路