算法练习 Leetcode 力扣 1203. Sort Items by Groups Respecting Dependencies 解法
这题还是挺难写对的。经过几番尝试以后,发现最好理解的算法就是先对group做一次拓扑排序。然后按group的顺序,对每个group里的items的做拓扑排序。这题增加另一难点在于gorup是-1的情况。其实相当于每个-1都是自己的新group。于是大量的工作其实在建立group的dependency graph上。拓扑排序的函数可以写一次反复重用。Python解法如下: 本题是复合题,三个点:1. 拓扑排序本身,然后分别用在group level和每个group的item level2. 建立group dependency3. handle group == -1的情况,就是给每个这种item assign新group