首页 > 解决方案 > 给定数组中的 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
            }
        }
    }

我没有尝试过代码,但这应该可以。我正在寻找更好的解决方案来解决这个问题。这是蛮力解决方案,谢谢。

标签: javasetset-theory

解决方案


推荐阅读