在 O(kl) 时间内将长度为 k、长度为 l 的排列 n 个项目的数组转换为以顶点作为 n 个项目的图

问题描述 投票:0回答:1

问题陈述是,有一个索引为 1 到 k 的数组,每个索引都包含一个列表,该列表按顺序对 n 个总项目中的 l 进行排序(即列表 1-2-3-4 相当于 1>2>3> 4).是否可以将此数组转换为邻接列表,其中顶点是 n 项,任何边表示关系 (u,v) = u > v。如果有用的话,n 是已知的,并且给定的列表可以被视为数组列表。非常感谢任何帮助。

我试图制定一个解决方案,但我能想到的每种方法要么创建许多重复边缘,这是我无法预料的,要么需要 O(kl^2) 时间来检查列表中的每个元素与后面的元素.

algorithm time-complexity adjacency-list
1个回答
0
投票

不确定我是否理解这个问题。

设置 n
对于数组中的每个列表
对于每个条目 x > y
添加 y 设置 x
将集合转换为列表

所需时间/操作取决于设定的实施。

© www.soinside.com 2019 - 2024. All rights reserved.