美文网首页
477. 汉明距离总和

477. 汉明距离总和

作者: bangbang2 | 来源:发表于2020-08-25 08:04 被阅读0次
image.png

求数组两两数字,有不一样的位数
如果利用暴力解法,会超时
Java的int是32位的,看看数组里的数对应位数的0与1的个数
相当于乘法公式


image.png
class Solution {
    public int totalHammingDistance(int[] nums) {
      int res=0;
      for(int i=0;i<32;i++){
          int zero=0;
          int one=0;
          for(int j=0;j<nums.length;j++){
              if((nums[j]&1)==1){
                  one++;
                  nums[j]=nums[j]>>>1;
              }else{
                  zero++;
                  nums[j]=nums[j]>>>1;
              }
          }
          res=res+zero*one;
      }
      return res;
    }
}

相关文章

网友评论

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

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