题目:​​原题链接​(中等)

标签:哈希表、数组、排序

解法

时间复杂度

空间复杂度

执行用时

Ans 1 (Python)

O ( N 3 )

O ( N 3 )

72ms (50.98%)

Ans 2 (Python)

Ans 3 (Python)

解法一:

class Solution:
def mostVisitedPattern(self, username: List[str], timestamp: List[int], website: List[str]) -> List[str]:
size1 = len(username)

# 依据用户整理
# O(N)
count1 = collections.defaultdict(list)
for i in range(size1):
user, time, site = username[i], timestamp[i], website[i]
count1[user].append((time, site))

count2 = collections.defaultdict(list)
for user, lst in count1.items():
count2[user] = [i[1] for i in sorted(lst)]

# 依据路径整理
count3 = collections.Counter()
for lst in count2.values():
paths = set()
size2 = len(lst)
for i in range(size2):
for j in range(i + 1, size2):
for k in range(j + 1, size2):
paths.add((lst[i], lst[j], lst[k]))
# 每个用户去重
for path in paths:
count3[path] += 1

# 返回结果
ans = list(count3.keys())
ans.sort(key=lambda x: (-count3[x], x))

return list(ans[0])