有两种表达式
A > B
代表有向图中, 点A
可以到达点B
, 而且两者不能是同一个点.A >= B
代表有向图中, 点A
可以到达点B
, 或者两者是同一个点.输入表达式的列表, 判断是否满足有向无环图的条件:
如果一个有向图无法从某个顶点出发经过若干条边回到该点,则这个图是一个有向无环图
例如
[A > B, B > C]
是一个有向无环图[A >= B, B >= A]
是一个有向无环图, 其中 A
和 B
被视为同一个点[A > B, B >= A]
不是一个有向无环图直觉上有 O(n)
的算法.
推广: 假设列表的前 x
项可以构成有向无环图,那么 x
的最大值是多少?
如果第一个问题有 O(n)
的算法, 那么第二个问题可以使用第一个算法做遍历,时间复杂度是 O(n * n)
,是否有更优的算法?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.