leetcode477. 汉明距离总和

news/2025/10/22 20:36:49/文章来源:https://www.cnblogs.com/uacs2024/p/19158912

leetcode477. 汉明距离总和

477. 汉明距离总和

微信截图_20251022202824

🤡过不了的暴力解:

class Solution {public int totalHammingDistance(int[] nums) {int n = nums.length,res = 0;for(int i = 0;i < n;++i){for(int j = i + 1;j < n;++j){res += HammingDist(nums[i],nums[j]);}}return res;}public int HammingDist(int x,int y){int z = x ^ y,res = 0;while(z > 0){z &= (z - 1);++res;}return res;}
}

法一:

在计算汉明距离时,我们考虑的是同一比特位上的值是否不同,而不同比特位之间是互不影响的。

对于数组 nums 中的某个元素 val,若其二进制的第 i 位为 1,我们只需统计 nums 中有多少元素的第 i 位为 0,即计算出了 val 与其他元素在第 i 位上的汉明距离之和。

具体地,若长度为 n 的数组 nums 的所有元素二进制的第 i 位共有 c 个 1,n−c 个 0,则些元素在二进制的第 i 位上的汉明距离之和为 c⋅(n−c)

我们可以从二进制的最低位到最高位,逐位统计汉明距离。将每一位上得到的汉明距离累加即为答案。具体实现时,对于整数 val 二进制的第 i 位,我们可以用代码 (val >> i) & 1 来取出其第 i 位的值。

此外,由于 10^9<2^30,我们可以直接从二进制的第 0 位枚举到第 29 位。

class Solution {public int totalHammingDistance(int[] nums) {int n = nums.length,res = 0;for(int i = 0;i < 30;++i){int countOne = 0;//统计本次右移之后末位为1的元素个数for(int num : nums){countOne += (num >> i) & 1;}res += countOne * (n - countOne);//本次右移末尾的汉明距离加到res
        }return res;}
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/943724.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java中的修饰符

在 Java 中,修饰符(Modifiers)是用来修改类、方法、变量、构造器等定义的关键字。它们主要分为两大类:访问修饰符和非控制修饰符。 以下是 Java 中所有修饰符的详细分类和说明: 一、 访问修饰符 (Access Modifier…

CF2078D Scammy Game Ad

设 \(f_{i, j}\) 为第 \(j\) 道的小人选择了第 \(i\) 个门,从 \(i \sim n\) 能够对答案产生多少贡献,倒着转移即可。

[树状数组]P11855 [CSP-J2022 山东] 部署 题解

完全不需要剖分啊,不知道 tag 在打什么劲。 首先看题面。 操作1是正常的操作,开一颗线段树记录 dfs 序区间修改。 操作2是反常的操作。这题需要记 bfs 序。这样就可以确保一个节点的直连节点 bfs 序是连续的。然后再…

行列式+矩阵树定理

https://www.luogu.com.cn/article/48au0mw4 行列式 对于矩阵 \(A_{[n],[n]}\) 其行列式为 \(det(A) = \sum\limits_{1∼n 的排列 P}{(-1)^{P 的逆序对个数} \prod\limits_{i=1}^{n}{A_{i,p_i}}}\)。 行列式的性质:单…

测试金字塔与测试左移:提升软件质量的双翼策略

无论团队规模大小,从今天开始审视你的测试策略,思考如何将这两种策略应用到你的项目中,必将收获显著的质量提升和效率改进。在快速迭代的现代软件开发中,如何保证产品质量同时加速交付,成为每个团队面临的挑战。今…

兼职MOer的幸福生活

搬运一下。零.前言组合意义天地生,代数推导jzy。一.Miller-Rabin素性测试 Miller-Rabin-Miller-Rabin-Mikuer-Robin-Milker-Rocky-Morty-Rick。 费马素性测试 费马曾言道:“\(a^{p-1} \equiv 1 \pmod p\) ,当 \(p\)…

20232323 2025-2026-1《网络与系统攻防技术》实验二实验报告

一、实验内容 1.使用netcat获取主机操作Shell,cron启动某项任务。 2.使用socat获取主机操作Shell, 任务计划启动 。 3.使用MSF meterpreter生成可执行文件(后门),利用ncat或socat传送到主机并运行获取主机Shell。 …

[职业技术学院逃生]

作品状态: \(\color{green}正在更新\) 作品下载 点我 公告 #1点击查看代码 关于"职业技术学院逃生破解版"的态度我方对于职业学院逃生破解版(后称"破解版")表示否认,在1.1.7后本文来自博客园,作…

C#/.NET/.NET Core技术前沿周刊 | 第 58 期(2025年10.13-10.19)

前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与…

完整教程:阿里云上CentOS6.9(停止维护)导致的yum下载chrony失败如何解决?

完整教程:阿里云上CentOS6.9(停止维护)导致的yum下载chrony失败如何解决?pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-fam…

九、OpenCV中视频的录制 - 指南

九、OpenCV中视频的录制 - 指南2025-10-22 20:20 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !importa…

高端网站设计中的微交互:细节如何决定用户体验 - 指南

高端网站设计中的微交互:细节如何决定用户体验 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&q…

股票操作统计分析报告 - 2025-10-22

股票操作统计分析报告 - 2025-10-22生成时间: 2025-10-22 20:17:44数据来源: 9db.com股票操作统计分析报告数据统计时间: 2025-10-22 数据来源: 9db.com建仓次数最多的股票: 长江电力 (共2次)建仓详细统计 (前10名):1.…

2025年完整指南:DeepSeek OCR 如何通过“视觉压缩”将AI成本降低20倍?

2025年完整指南:DeepSeek OCR 如何通过“视觉压缩”将AI成本降低20倍?DeepSeek OCR 并非传统的光学字符识别工具,而是一种探索“视觉-文本压缩”的前沿AI模型。它通过将长文本转换成图像进行处理,极大地降低了计算…

LGP5494 [LG TPLT] 线段树分裂 学习笔记

LGP5494 [LG TPLT] 线段树分裂 学习笔记 \(\texttt{Luogu Link}\) 前言\(\texttt{Q:}\) 有什么数据结构是支持用合并&分裂查询答案信息的呢? \(\texttt{A:}\) \(\text{FHQ-Treap}\)。 \(\texttt{Q:}\) 还有吗? \…

k8s 常用命令 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

文档智能信息抽取技术在金融财税领域的应用研究与发展前景

在金融与财税这个由海量文档驱动的领域中,效率与准确性是生命线。从繁复的财务报表、五花八门的发票,到冗长的合同与合规文件,传统的人工处理方式不仅成本高昂、效率低下,还极易出错。随着人工智能技术的成熟,文档…

今日策略:年化436%,回撤7%,夏普比5.28, deap因子挖掘重构,附python代码 - 详解

今日策略:年化436%,回撤7%,夏普比5.28, deap因子挖掘重构,附python代码 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; fo…

申威架构ky10安装php-7.2.10.rpm详细步骤(国产麒麟系统64位)

申威架构ky10安装php-7.2.10.rpm详细步骤(国产麒麟系统64位)​1. 先确认系统环境​你用的应该是申威平台的银河麒麟系统(版本ky10)​,系统得是64位的(因为这rpm包是_64的)。打开终端(就是黑框框),先敲命令看…

Unity 虚拟仿真实验中设计模式的使用 ——策略模式(Strategy Pattern) - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …