演算法練習 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