news 2026/8/19 22:31:31

leetcode 1722. Minimize Hamming Distance After Swap Operations

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
leetcode 1722. Minimize Hamming Distance After Swap Operations

Problem: 1722. 执行交换操作后的最小汉明距离

既然可以两两交换数字,而且次数不限制,所以可以任意排列

首先并查集拿到所有可能的聚合体,然后对每个根节点,拿到这个树的所有索引i,以及这个树的索引对应数值的统计值

然后遍历每颗树,对当前索引i,若target[l[i]]在ump2内,且值>0则-1,否则sum++,标记target[l[i]] = -1

最后统计不能交换且不同的个数

Code

class joinarr { public: vector<int> arr; int n; joinarr(int n) { this->n = n; arr.resize(n); for(int i = 0; i < n; i++) arr[i] = i; } int find(int a) { while(a!=arr[a]) a = arr[a]; return a; } void join(int a, int c) { int aa = find(a); int cc = find(c); if(aa < cc) arr[cc] = aa; else arr[aa] = cc; } }; class Solution { public: int minimumHammingDistance(vector<int>& source, vector<int>& target, vector<vector<int>>& allowedSwaps) { int n = source.size(); int m = allowedSwaps.size(); joinarr ja = joinarr(n); for(int i = 0; i < m; i++) { ja.join(allowedSwaps[i][0], allowedSwaps[i][1]); } unordered_map<int, vector<int>> ump; unordered_map<int, unordered_map<int, int>> ump2; int ind; for(int i = 0; i < n; i++) { ind = ja.find(i); ump[ind].push_back(i); ump2[ind][source[i]]++; } int num, sum = 0; for(auto&& [k, l] : ump) { for(int i = 0; i < l.size(); i++) { num = target[l[i]]; if(ump2[k].count(num) > 0 && ump2[k][num] > 0) { ump2[k][num]--; } else { sum++; } target[l[i]] = -1; } } for(int i = 0; i < n; i++) { if(target[i] >= 0 && target[i] != source[i]) { sum++; } } return sum; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/19 22:30:39

Spring Boot AOP记录用户操作日志

一、添加依赖 在Spring框架中&#xff0c;使用AOP配合自定义注解可以方便的实现用户操作的监控。首先搭建一个基本的Spring Boot Web环境开启Spring Boot&#xff0c;然后引入必要依赖&#xff1a; <!-- aop依赖 --><dependency><groupId>org.springframew…

作者头像 李华
网站建设 2026/8/19 22:30:11

嵌入式开发入门:从LED与传感器控制到物联网系统构建

1. 从零开始&#xff1a;为什么我们需要控制LED和传感器&#xff1f;如果你刚接触电子制作&#xff0c;比如Arduino或者ESP32&#xff0c;你可能会觉得“控制LED和传感器”听起来太基础了&#xff0c;不就是让灯亮一下、读个数吗&#xff1f;我刚开始也是这么想的&#xff0c;但…

作者头像 李华
网站建设 2026/8/19 22:29:46

基于EasyUI与KnockoutJS的通用分页查询与数据导出ViewModel设计

1. 项目缘起&#xff1a;从重复劳动到统一抽象 在基于EasyUI、KnockoutJS和MVC 4.0技术栈的中后台管理系统中&#xff0c;分页查询和数据导出几乎是每个列表页面的标配功能。回想几年前&#xff0c;我接手一个项目&#xff0c;光是用户管理、订单管理、日志查询等模块&#xff…

作者头像 李华
网站建设 2026/8/19 22:26:35

广州微闻网络AI落地技术实践:Agent定制、Token供应与云计算全栈技术解析

文聚焦广州微闻网络科技有限公司在AI落地领域的技术实践&#xff0c;深入解析Agent定制开发、Token聚合供应、云计算全栈服务三大技术方向的具体实现方案&#xff0c;并涵盖AI提效、AI转型培训、WorkBuddy使用培训等业务的技术能力&#xff0c;为技术团队提供参考。一、公司技术…

作者头像 李华
网站建设 2026/8/19 22:24:38

在线教育平台开课前三网验收:视频域、直播与 API

在线教育平台开课前三网验收&#xff1a;视频域、直播与 API工具地址&#xff1a;https://www.speedce.com 社区论坛&#xff1a;https://bbs.speedce.com 联系&#xff1a;speedceadsgmail.com写在前面 开课铃响了你才发现视频域移动红——太晚了。 本文是一份围绕「在线教育平…

作者头像 李华
网站建设 2026/8/19 22:24:26

多个人同时提问但位置有限

摘要&#xff1a;在算力昂贵的大模型&#xff08;LLM&#xff09;推理与高并发后端架构中&#xff0c;资源的物理约束是不可跨越的红线。假设系统只有 3 个 GPU 槽位&#xff08;Inference Slots / Worker Threads&#xff09;&#xff0c;当 10 个并发请求同时涌入时&#xff…

作者头像 李华