荣耀8.10第三题

没有提交,试了两个例子还行,大家看看有问题没
#adj_list=[0,1,1,1,2,1,2,3,1]
#adj_list=[0,3,5,0,4,9,0,6,8,0,7,5,1,2,6,1,6,3,2,9,7,3,4,3,3,5,3,3,8,3,3,9,3,5,8,3,5,8,9,7,8,9]
adj_list=[0,3,5,0,4,9,0,6,8,0,7,5,1,2,6,1,6,3,2,9,7,3,4,3,3,5,3,3,8,3,3,9,3,5,8,9,7,8,9]
def print_for(user_list):
    for i in user_list:
        print(i)
    print()
def app(m,user,n):
    #用户邻接矩阵
    r = [[0]*m for _ in range(m)]
    for i in range(0,len(adj_list),3):
        r[adj_list[i]][adj_list[i+1]]=adj_list[i+2]
        r[adj_list[i+1]][adj_list[i]]=adj_list[i+2]
    print_for(r)
    # 每行表示第i度用户关系分数,从0开始
    score = [[0]*m for _ in range(n+1)]
    # 第i度用户
    remain=[user]
    # 已经访问过的用户
    memory = [user]
    for i in range(1,n+1):
        for _ in range(len(remain)):
            s = remain.pop(0)
            for j in range(m):
                if r[s][j]!=0 and j not in memory:
                    score[i][j]=r[s][j]+score[i-1][s]
                    print_for(score)
                    remain.append(j)
                    memory.append(j)
    dic={}
    for i,j in enumerate(score[n]):
        dic[i]=j
    re = sorted(dic.items(), key = lambda kv:kv[1],reverse=True)
    result = []
    for k,v in re:
        if v!=0:
            result.append(k)
    print(result)

#app(4,0,2)
#app(10,5,2)
app(10,0,2)


#荣耀笔试##荣耀手机##笔经#
全部评论

相关推荐

09-25 10:34
东北大学 Java
多面手的小八想要自然醒:所以读这么多年到头来成为时代车轮底下的一粒尘
点赞 评论 收藏
分享
1 3 评论
分享
牛客网
牛客企业服务