博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
721. Accounts Merge
阅读量:5225 次
发布时间:2019-06-14

本文共 1475 字,大约阅读时间需要 4 分钟。

https://leetcode.com/problems/accounts-merge/discuss/109158/Java-Solution-(Build-graph-+-DFS-search)

 

1 class Solution { 2     public List
> accountsMerge(List
> accounts) { 3 List
> res = new ArrayList<>(); 4 if(accounts == null) return res; 5 HashMap
map = new HashMap<>(); 6 HashMap
> graph = new HashMap<>(); 7 for(int j = 0; j < accounts.size(); j++){ 8 List
account = accounts.get(j); 9 String name = account.get(0);10 for(int i = 1; i < account.size(); i++){11 if(!graph.containsKey(account.get(i))){12 graph.put(account.get(i), new HashSet<>());13 }14 map.put(account.get(i), name);15 16 if(i != 1){17 graph.get(account.get(i)).add(account.get(i-1));18 graph.get(account.get(i-1)).add(account.get(i));19 }20 }21 }22 23 Set
visited = new HashSet<>();24 for(String email : map.keySet()){25 List
list = new ArrayList<>();26 String name = map.get(email);27 if(!visited.contains(email)){ //判断是否visited之后, 没有的话要加进去28 visited.add(email);29 dfs(graph, visited, list, email);30 Collections.sort(list);31 list.add(0, name);32 res.add(list);33 } 34 }35 return res; 36 }37 38 public void dfs(HashMap
> graph, Set
visited, List
list, String email){39 list.add(email);40 for(String neighbor : graph.get(email)){41 if(!visited.contains(neighbor)){42 visited.add(neighbor);43 dfs(graph, visited, list, neighbor);44 }45 }46 }47 }

 

转载于:https://www.cnblogs.com/goPanama/p/9859035.html

你可能感兴趣的文章
【RabbitMQ】 Java简单的实现RabbitMQ
查看>>
BZOJ.4819.[SDOI2017]新生舞会(01分数规划 费用流SPFA)
查看>>
ubuntu 14.04 安装搜狗拼音输入法
查看>>
c#中 uint--byte[]--char[]--string相互转换汇总
查看>>
- C#编程大幅提高OUTLOOK的邮件搜索能力!
查看>>
InstallShield Limited Edition for Visual Studio 2013 图文教程(教你如何打包.NET程序)
查看>>
浅谈算法和数据结构: 一 栈和队列
查看>>
[WebMatrix] 如何将SQL Compact 4.0 移转至SQL Server 2008 Express
查看>>
Java内部类详解
查看>>
python-基础
查看>>
17 案例
查看>>
【BZOJ 1221】 [HNOI2001] 软件开发
查看>>
【hdu 1429】胜利大逃亡(续)
查看>>
SQL字符型转日期型
查看>>
js小项目:显示与输入的内容相关的
查看>>
Java程序设计教程(第2版)阅读总结
查看>>
vscode + platformIO开发stm32f4
查看>>
hadoop的三种方式
查看>>
java,冒泡排序法代码
查看>>
读配置文件 properties
查看>>