题解 | #牛群的喂养顺序II#
牛群的喂养顺序II
https://www.nowcoder.com/practice/05abc133293a42358bbbb4016034728e
package main import "fmt" /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param numCows int整型 * @param feedOrders int整型二维数组 * @return int整型一维数组 */ func findFeedOrderII( numCows int , feedOrders [][]int ) []int { // write code here rudulis:=make([]int,numCows) linjie:=make([][]int,numCows) for _,v:=range feedOrders{ linjie[v[1]]=append(linjie[v[1]], v[0]) rudulis[v[0]]++ } flag:=1 start:=-1 for i,v:=range rudulis{ if v==0{ flag-- start=i } } if flag==-1||flag==1{ return nil } fmt.Print(start) res:=[]int{} var dfs func(int,int) dfs=func(from,to int){ res=append(res,to) for _,v:=range linjie[to]{ rudulis[v]-- if rudulis[v]==0{ dfs(to,v) } } } dfs(-1,start) return res }