题目来源:牛客,阿里巴巴编程题(2星),第8题
题目描述
题解
倒序遍历。记录每个动物的粉丝数量,这里的粉丝数量存在累计,例如:3崇拜2,2崇拜1,那么1就有2个粉丝。从编号最大的动物开始,更新粉丝数量。而每个动物能得到的最高票数就等于粉丝数量加1。
代码如下:
⚠️注意,当动物i没有崇拜者时,需跳过该动物,不然就累加到最后一个动物的粉丝数量上了。
def main():
n = int(input())
obj = [int(i) for i in input().split()]
fan = [0]*n
for i in range(n-1,0,-1):
if obj[i]>0:
fan[obj[i]-1] += 1+fan[i]
for i in range(n):
print(fan[i]+1)
return
if __name__ == '__main__':
main()