我为您可以在python 3中阅读here的问题写了一个解决方案。我通常选择 PyPy 提交解决方案,因为它更快。但是对于下面的代码
for _ in range(int(input())):
n = int(input())
li = list(map(int, input().split()))
s = [0] * n
for i in li:
s[i - 1] += 1
s.sort(reverse=True)
m = 2 * (10 ** 6) + 1
max_gs = 0
for i in s:
m = max(min(m - 1, i), 0)
max_gs += m
print(max_gs)
可以找到here的pypy解决方案持续花费超过 3000毫秒,就像我使用python 3(解决方案here)作为解释器时一样花费了 2700毫秒(已多次验证)。我不了解发生了什么事情以及应该怎么做才能使代码在PyPy中更快地运行。