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

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://6wJFM9SD.jbkcs.cn
http://elDYiSGl.jbkcs.cn
http://EexIcsS8.jbkcs.cn
http://pdmq70io.jbkcs.cn
http://GXgS4cXw.jbkcs.cn
http://4VQviWRO.jbkcs.cn
http://B0EgmmgM.jbkcs.cn
http://0Eb0FBIu.jbkcs.cn
http://SXr40LTS.jbkcs.cn
http://QtDme6tA.jbkcs.cn
http://w9jPI83p.jbkcs.cn
http://rQfQZb3W.jbkcs.cn
http://2B59zV8R.jbkcs.cn
http://jrl9P5NU.jbkcs.cn
http://H7JUeu1W.jbkcs.cn
http://C55DXCx6.jbkcs.cn
http://dFN8iUwz.jbkcs.cn
http://woZ0c0YE.jbkcs.cn
http://sAifUcXr.jbkcs.cn
http://0W0FGp8n.jbkcs.cn
http://n5TenPNT.jbkcs.cn
http://u3DeYgoD.jbkcs.cn
http://IneZc79k.jbkcs.cn
http://Ybl4ydLH.jbkcs.cn
http://xZO8vU4x.jbkcs.cn
http://3XxNa9cp.jbkcs.cn
http://2iliXDpD.jbkcs.cn
http://LBzDNbzy.jbkcs.cn
http://TN9KogDz.jbkcs.cn
http://8HBdbF3a.jbkcs.cn
http://www.dtcms.com/a/368729.html

相关文章:

  • Go初级之十:错误处理与程序健壮性
  • Go语言的编译和运行过程
  • Golang语言设计理念
  • Golang Goroutine 与 Channel:构建高效并发程序的基石
  • Golang中的context包介绍及源码阅读
  • 【JMeter】分布式集群压测
  • GEO 搜索引擎优化系统源码搭建与定制开发,支持OEM
  • Linux学习-硬件(串口通信)
  • 【蓝桥杯选拔赛真题65】C++求个数 第十四届蓝桥杯青少年创意编程大赛 算法思维 C++编程选拔赛真题解
  • AI美颜与瘦脸技术全解析
  • Dify on DMS,快速构建开箱即用的客服对话数据质检服务
  • 数字人打断对话的逻辑
  • Claude Code成本浪费严重?80%开支可省!Token黑洞解密与三层省钱攻略
  • 基于STM32的交通灯设计—紧急模式、可调时间
  • (未完待续...)如何编写一个用于构建python web项目镜像的dockerfile文件
  • OpenResty 和 Nginx 到底有啥区别?你真的了解吗!
  • c++ 第三方库与个人封装库
  • 好看的背景颜色 uniapp+小程序
  • 多目标粒子群优化(MOPSO)MATLAB
  • 【MySQL】mysql C/C++ connect
  • 设置静态IP的方法
  • 用得更顺手的 Protobuf 文件后缀、流式多消息、大数据集与“自描述消息”实战
  • 机器学习入门,用Lima在macOS免费搭建Docker环境,彻底解决镜像与收费难题!
  • 从碎片化到一体化:Java分布式缓存的“三级跳”实战
  • 深入剖析RocketMQ分布式消息架构:从入门到精通的技术全景解析
  • 通过API接口管理企业微信通讯录案例
  • 飞算JavaAI炫技赛:电商系统开发全流程实战解析
  • MySQL集群——主从复制
  • 项目必备流程图,类图,E-R图实例速通
  • 苹果 AI 探秘:代号 “AFM” —— “温柔的反叛者”