根据题目描述就知道又是一个建图的问题。每一个数字就是一个vertex,每一个给定的先后关系就是一个edge。然后重建先后顺序就是一个topological sorting的过程。当然根据题目所说重建顺序唯一,我们每次发现多于一个可去掉的顶点时就需要return false,这样可以保证sorting结果唯一。另外有环的情况,有环的话我们能sort的vertex集合是所有vertex集合的子集,因为环的部分我们不可能sort,所以我们发现sort出来的集合大小和原图不一样的话,那就是说明有环,也需要return false。代码如下:
No comments:
Post a Comment