有两种表达式
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),是否有更优的算法?