4.13 阿里笔试第一题
小动物投票那个题,一开始想错了然后做了一个小时gg,后来交卷前三分钟想到哪错了
唉每次都会读错题,然后我考完试自己写了一下,每个小动物都用dfs求连通,然后visited记录是否被访问,每次新的小动物的visited都要重置。
测试了自己想的几个用例好像都是对的,
比如:
小动物崇拜列表:
[0,1,1,2,3,4]输出:
[6, 3, 2, 2, 1, 1]
想找ac的大佬帮我看看有没有错误
阿里与俺无缘了
def solve(n,a): res = [] a.insert(0,0) for i in range(1,n+1): visited = [False]*(n+1) tmpcount =1 tmpcount+= dfs(i,visited,n,tmpcount) res.append(tmpcount) return res def dfs(i,visited,n,count): print(count) tcount =0 for j in range(i+1,n+1): if a[j]==i and not visited[j]: #往下找还有么 visited[j] = True tcount+= dfs(j,visited,n,count)+1 return tcount a = [0,1,1,2,3,4] n =6 res = solve(n,a) print(res)