class Twitter:
def __init__(self):
self.time = 0
self.P = defaultdict(list)
self.C = defaultdict(set)
def postTweet(self, userId: int, tweetId: int) -> None:
self.P[userId].append((self.time,tweetId))
self.time += 1
def getNewsFeed(self, userId: int) -> List[int]:
arr = []
for followeeId in self.C[userId]:
arr += self.P[followeeId][-10:]
arr += self.P[userId][-10:]
return [ t[1] for t in nlargest(10, arr)]
def follow(self, followerId: int, followeeId: int) -> None:
self.C[followerId].add(followeeId)
def unfollow(self, followerId: int, followeeId: int) -> None:
if followeeId in self.C[followerId]:
self.C[followerId].remove(followeeId)