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

全部评论

相关推荐

12-14 11:43
黑龙江大学 Java
用微笑面对困难:确实比较烂,可以这么修改:加上大学的qs排名,然后大学简介要写一些,然后硕士大学加大加粗,科研经历第一句话都写上在复旦大学时,主要负责xxxx,简历左上角把学校logo写上,建议用复旦大学的简历模板
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务