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

Leetcode—721. 账户合并【中等】

2025每日刷题(231)

Leetcode—721. 账户合并

在这里插入图片描述

实现代码

class unionFind {
public:unionFind(int n): id(n), sz(n, 1) {iota(id.begin(), id.end(), 0);}void unionSize(const int& u, const int& v) {const int x = find(u);const int y = find(v);if(x == y) {return;}if(sz[x] < sz[y]) {sz[y] += sz[x];id[x] = y;} else {sz[x] += sz[y];id[y] = x;}}int find(const int &u) {return id[u] == u? u: id[u] = find(id[u]);}private:vector<int> id;vector<int> sz;
};class Solution {
public:vector<vector<string>> accountsMerge(vector<vector<string>>& accounts) {int n = accounts.size();vector<vector<string>> ans;// {email: index}unordered_map<string, int> mailtoIndex;// {index: {emails}}unordered_map<int, set<string>> indextoMails;unionFind uf(n);for(int i = 0; i < n; ++i) {const string& name = accounts[i][0];for(int j = 1; j < accounts[i].size(); ++j) {const string& email = accounts[i][j];const auto& it = mailtoIndex.find(email);if(it == mailtoIndex.end()) {mailtoIndex[email] = i;} else {uf.unionSize(i, it->second);}}}for(const auto& [email, index]: mailtoIndex) {indextoMails[uf.find(index)].insert(email);}for(const auto& [index, email]: indextoMails) {const string& name = accounts[index][0];vector<string> row{name};row.insert(row.end(), email.begin(), email.end());ans.push_back(row);}return ans;}
};

运行结果

在这里插入图片描述

之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

http://www.xdnf.cn/news/20145.html

相关文章:

  • Mattermost教程:用Docker搭建自己的开源Slack替代品 (团队聊天)
  • PyTorch训练循环详解:深入理解forward()、backward()和optimizer.step()
  • 光伏项目无人机踏勘--如何使用无人机自动航线规划APP
  • VMware替代 | ZStack生产级跨版本热升级等七大要素降低TCO50%
  • HDFS存储农业大数据的秘密是什么?高级大豆数据分析与可视化系统架构设计思路
  • OpenLayers常用控件 -- 章节五:鹰眼地图控件教程
  • 修改上次提交的Git提交日志
  • CodePerfAI体验:AI代码性能分析工具如何高效排查性能瓶颈、优化SQL执行耗时?
  • 《sklearn机器学习——聚类性能指标》调整兰德指数、基于互信息(mutual information)的得分
  • Mysql中模糊匹配常被忽略的坑
  • Netty从0到1系列之Netty整体架构、入门程序
  • Python迭代协议完全指南:从基础到高并发系统实现
  • 投资储能项目能赚多少钱?小程序帮你测算
  • Unity2022.3.41的TargetSdk更新到APILevel 35问题
  • Fairness, bias, and ethics|公平,偏见与伦理
  • 【科研绘图系列】R语言绘制论文合集图
  • 高等数学知识补充:三角函数
  • 脚本语言的大浪淘沙或百花争艳
  • JUnit入门:Java单元测试全解析
  • Boost搜索引擎 查找并去重(3)
  • 输入网址到网页显示的整个过程
  • 孙宇晨钱包被列入黑名单,WLFI代币价格暴跌引发中心化争议
  • Unix/Linux 平台通过 IP 地址获取接口名的 C++ 实现
  • 告别 “无效阅读”!2025 开学季超赞科技书单,带孩子解锁 AI、编程新技能
  • Docker部署PanSou 一款开源网盘搜索项目,集成前后端,一键部署
  • 基于单片机汽车防撞系统设计
  • validator列表校验
  • OCA、OCP、OCM傻傻分不清?Oracle认证就看这篇
  • 四六级学习资料管理系统的设计与实现(代码+数据库+LW)
  • pandas的使用(1)0905