Untitled
unknown
plain_text
a year ago
1.1 kB
14
Indexable
def getRecommendedFriends(n, friendships):
adj = [set() for _ in range(n)]
for i, j in friendships:
adj[i].add(j)
adj[j].add(i)
common = [{} for _ in range(n)]
for u1, u2 in friendships:
# u2 is the common friend
for u3 in adj[u2]:
if u3 != u1 and u3 not in adj[u1]:
if u3 not in common[u1]:
common[u1][u3] = 0
common[u1][u3] += 1
# u1 is the common friend
for u3 in adj[u1]:
if u3 != u2 and u3 not in adj[u2]:
if u3 not in common[u2]:
common[u2][u3] = 0
common[u2][u3] += 1
res = [-1] * n
for i in range(n):
# Nobody has common friend with user i.
if len(common[i]) == 0:
for j in range(n):
if j not in adj[i] and j != i:
res[i] = j
break
else:
c = -1
for user, num in common[i].items():
if c < num or (c == num and user < res[i]):
res[i] = user
c = num
return resEditor is loading...
Leave a Comment