美文网首页
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