N = int(input())
L1 = input()
L = L1.split()
s = set(L)
d = {}
for e in s:
d[e] = L.count(e)
print(d)
max_value = max(d.values())
print(max_value)
L = list(d.values())
print(L)
res = L.count(max_value)
print(res)
/ 在提供正常输入时,它运行良好,但在提供大量输入时,它会出现时间限制错误 /
代码的运行时间复杂度为 O(n),其中 n 是列表 L 的长度。这是因为
count()
函数遍历了列表中的所有元素。
当输入量较大时,会导致代码运行缓慢。
我们可以通过使用字典来存储列表中每个元素的计数来优化代码。这将把运行时间复杂度降低到 O(n),这对于大量输入来说效率更高。
以下是优化后的代码:
N = int(input())
L1 = input()
L = L1.split()
d = {}
for e in L:
if e in d:
d[e] += 1
else:
d[e] = 1
print(d)
max_value = max(d.values())
print(max_value)
res = list(d.values()).count(max_value)
print(res)
在这段代码中,我们遍历了列表 L 一次,对于 L 中的每个元素,我们检查它是否已经在字典 d 中。如果存在,我们将它的计数加 1。否则,我们将它添加到字典中,并将其计数设为 1。
此代码的运行时间复杂度为 O(n),这对于大量输入来说效率更高。
标签:python,python-3.x,list,dictionary,data-structures From: 78804507