题解 | 智乃的“K”叉树

智乃的“K”叉树

https://www.nowcoder.com/practice/85631392592c4b9b9558e0611773ad33

package main

import (
    "fmt"
)

func min(a, b int) int {
    if a > b {
        return b
    }
    return a 
}

func max(a, b int) int {
    if a < b {
        return b
    }
    return a 
}

func main() {
    var n int
    fmt.Scan(&n)
    nodes := make([]int, n+1)
    maxEdge := -1
    for i := 0 ; i < n-1 ; i++ {
        var from, to int
        fmt.Scan(&from, &to)
        nodes[from], nodes[to] = nodes[from] + 1, nodes[to]+1
        maxEdge = max(maxEdge, max(nodes[from], nodes[to]))
    }
    if n == 2 {
		fmt.Printf("%d %d", 1, 1)
		return
	}
    index := 1
    for nodes[index] == maxEdge {
        index++
    }
    fmt.Printf("%d %d", maxEdge-1, index)
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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