题解 | #牛群的喂养顺序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
}


