当前位置: 首页 > news >正文

477. 汉明距离总和

汉明距离总和

  • 题目描述
  • 尝试做法
  • 推荐做法

题目描述

两个整数的 汉明距离 指的是这两个数字的二进制数对应位不同的数量。

给你一个整数数组 nums,请你计算并返回 nums 中任意两个数之间 汉明距离的总和 。

示例 1:

输入:nums = [4,14,2]
输出:6
解释:在二进制表示中,4 表示为 0100 ,14 表示为 1110 ,2表示为 0010 。(这样表示是为了体现后四位之间关系)
所以答案为:
HammingDistance(4, 14) + HammingDistance(4, 2) + HammingDistance(14, 2) = 2 + 2 + 2 = 6
示例 2:

输入:nums = [4,14,4]
输出:4

提示:

1 <= nums.length <= 104
0 <= nums[i] <= 109
给定输入的对应答案符合 32-bit 整数范围

尝试做法

class Solution {
    public int totalHammingDistance(int[] nums) {
        int ans = 0;
        for(int i = 0; i < nums.length; ++i){
            for(int j = i; j < nums.length; ++j){
                ans += Integer.bitCount(nums[i] ^ nums[j]);
            }
        }
        return ans;
    }
}

没有想到可以降低时空复杂度的方法

推荐做法

class Solution {
    public int totalHammingDistance(int[] nums) {
        int ans = 0;
        for (int x = 31; x >= 0; x--) {
            int s0 = 0, s1 = 0;
            for (int u : nums) {
                if (((u >> x) & 1) == 1) {
                    s1++;
                } else {
                    s0++;
                }  
            }
            ans += s0 * s1;
        }
        return ans;
    }
}

作者:宫水三叶
链接:https://leetcode.cn/problems/total-hamming-distance/solutions/799569/gong-shui-san-xie-ying-yong-cheng-fa-yua-g21t/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

将数组元素化零为整,作为一个整体来看待
计算32位int中的每一位会产生的海明距离,然后再求和

相关文章:

  • 基于RKNN的嵌入式深度学习开发(2)
  • 计算机网络---TCP三握四挥
  • 基于Ollama安装deepseek-r1模型搭建本地知识库(Dify、MaxKb、Open-WebUi、AnythingLLM、RAGFlow、FastGPT)
  • 钉钉小程序(企业内部应用)开发--钉钉小程序web-view嵌套H5与小程序之间的通信(H5跳转钉钉小程序小程序postMessage)
  • 计算机毕业设计SpringBoot+Vue.js保险合同管理系统(源码+文档+PPT+讲解)
  • 相机引导2_两个固定相机引导机器人把芯片装入外壳
  • 【清晰、易操作、好用】Latex简历模板-个人求职升学版
  • java常见面试01
  • Opaque和Transparent
  • 算法:判断链表是否有环
  • 大模型推理时的尺度扩展定律
  • Day13,Hot100(数学技巧)
  • ARM 架构下 cache 一致性问题整理
  • Window C++模拟单片机控制TFT屏幕和SD卡
  • etcd心跳机制与存储性能影响深度分析
  • 三元组排序(acwing)c++
  • 26、IO流(只是小入门)
  • netty如何处理粘包半包
  • 股市能量场理论Python实战指南
  • ubuntu Linux 正确设置中文环境的方法
  • 做网站能注册账号的/seo咨询
  • 东莞做网站建设/怎样在百度上发布作品
  • 网站建设的wbs分解/百度广告电话号码
  • 天津网站设计 河西/百度统计app下载
  • php动态网站开发案例教程/百度软件下载中心官方网站
  • wordpress建站时间/推广页面制作