华为校招机试 - 批量初始化次数(20230426)

题目描述

某部门在开发一个代码分析工具,需要分析模块之间的依赖关系,用来确定模块的初始化顺序是否有循环依赖等问题。

"批量初始化”是指一次可以初始化一个或多个模块。

例如模块1依赖模块2,模块3也依赖模块2,但模块1和3没有依赖关系,则必须先"批量初始化”模块2,再"批量初始化"模块1和3。

现给定一组模块间的依赖关系,请计算需要“批量初始化"的次数。

输入描述

  • 第1行只有一个数字,表示模块总数N
  • 随后的N行依次表示模块1到N的依赖数据。每行的第1个数表示依赖的模块数量(不会超过N),之后的数字表示当前模块依赖的ID序列。该序列不会重复出现相同的数字,模块ID的取值定在[1,N]之内
  • 模块总数N取值范围 1<=N<=1000
  • 每一行里面的数字按1个空格分隔

输出描述

输出"批量初始化次数”。

若有循环依赖无法完成初始化,则输出-1。

用例

输入

5
3 2 3 4
1 5
1 5
1 5
0

猜你喜欢

转载自blog.csdn.net/qfc_128220/article/details/130395868