java - 给定数组中的 n 个集合,查找所有相交集合对
问题描述
假设给定一个包含字符串的 HashSet 数组列表。问题是打印所有具有非空交集的集合对。列表的大小为 n,每个集合为 m。
我能想到的幼稚方法是遍历数组并检查每个元素。这将需要 n^2*m 复杂度。n^2 用于 for 循环,m 用于查找集合的交集。
void printPairs(List<Set<String>> sets){
for(int i=0; i< sets.length; i++){
for(int j=0; j< sets.length; j++){
//if Intersection is not null than print i andj
}
}
}
我没有尝试过代码,但这应该可以。我正在寻找更好的解决方案来解决这个问题。这是蛮力解决方案,谢谢。
解决方案
推荐阅读
- excel - 使用 Loop 和 If, ElseIf 导致消息:“找不到”(我在寻找什么)”
- c# - 如果我快速连续运行多个 Azure 搜索索引器,有没有办法访问 Azure SDK 中等待的索引器队列?
- jpa - JPA 如何确保 2 个字段(字符串和布尔值)的唯一性
- angularjs - 出现错误:[$injector:unpr] 未知提供者:dataServiceProvider <- dataService <- firstctrl
- asp.net-mvc - html helper @enumdropdownlistfor 没有将值发送到模型
- usb - 无法声明 USB 接口(设备或资源繁忙)卡住
- android - 无法实例化活动 ComponentInfo(应用程序不断停止)
- c++ - 如何使用 QAbstractItemModel 映射多级对象模型
- firebase - Firebase - 科尔多瓦重定向到 Ios 上的空白屏幕
- linux - Ubuntu Postgres 开始拒绝连接