给定一个路径统计数组paths,表示一张图。paths[i]==j代表城市i连向城市j,如果paths[i]==i,则表示i城市是首都,一张图里只会有一个首都且图中除首都指向自己之外不会有环。例如,paths=[9,1,4,9,0,4,8,9,0,1],代表的图如图9-14所示。 由数组表示的图可以知道,城市1是首都,所以距离为0,离首都距离为1的城市只有城市9,离首都距离为2的城市有城市0、3和7,离首都距离为3的城市有城市4和8,离首都距离为4的城市有城市2、5和6。所以距离为0的城市有1座,距离为1的城市有1座,距离为2的城市有3座,距离为3的城市有2座,距离为4的城市有3座。那么统计数组为nums=[1,1,3,2,3,0,0,0,0,0] [要求] 时间复杂度为,额外空间复杂度为
输入描述:
第一行有一个整数N,表示节点个数。接下来一行有N个整数表示paths。其中第i个整数表示第i-1个节点的祖先
输出描述:
输出N个整数表示nums。
备注:
保证输入合法。
加载中...