java - 寻找 4 个元素的共同元素

标签 java dictionary set graph-theory

我有一张 map TreeMap<Integer, Set<Integer>> adjacencyLists和一个整数集 TreeSet<Integer> specialNodes .

map 表示图的邻接列表。

我想从 adjacencyLists 中选取 key 并查找它们在 specialNodes 中是否存在公共(public)相邻项.

有没有办法有效地做到这一点?

示例:

adjacencyLists如下:

[1, [2 3 4 5]]
[2, [1 5]]  
[3, [1 4 5]]  
[4, [1 3]]  
[5, [1 2 3]]

specalNodes如下:

[1 3 4 5]

在此示例中,45存在于 adjacencyLists 的第一个和第三个条目的值中.

因此,编写一个函数findCommon(1,3)应该给我[4 5]
同样,findCommon(1,5)应该返回null因为“2”是唯一常见且不在 specialNodes 中的元素.

最佳答案

以下是分步过程。

  1. 从键中获取两个值。 O(logn)
  2. 对它们进行排序。 O(nlogn)
  3. 查找common elementsO(m+n)
  4. specialNodes中搜索公共(public)元素。 O(m+n)

因此最坏情况时间复杂度 = O(nlogn)

关于java - 寻找 4 个元素的共同元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23430459/

相关文章:

configuration - 如何使用 Fluent NHibernate 自动映射来映射字典?

c++ - 创建空 vector 以将值插入以后

list - 如何比较haskell列表中的内容,看看它们是否部分相同?

java - 如何从java应用程序连接到oracle远程数据库?

java - 使用 hibernate 5.0.2 和 glassfish4.0

java - 如何在 Java 中将数字格式化为固定长度、空格填充、千位分隔符、2 位小数

get - flutter/Dart : get and set with private variables

java - 如何解决此错误 : java. lang.NoSuchFieldError : UTF_32BE?

python - 从 Python 子字典访问值

java,获取设置方法