我是初学者,我正在练习关于黑客的问题。 我把这段代码写成了一个问题的一部分,这个问题超时了大量输入:
K = int(input())
roomnos = input().split()
setroomnos = set(roomnos)
for r in setroomnos:
if roomnos.count(r) == 1:
print(r)
break
下一个被法官接受所有测试用例
K = int(input())
roomnos = [int(i) for i in input().split()]
setroomnos = set(roomnos)
c = (K * sum(setroomnos) - sum(roomnos)) // (K - 1)
print(c)
你能否解释一下为什么第一个输出大输入,第二个输入正常 PS:基本操作是找到一个在列表中只出现一次的no,而不是出现K次的其他nos
答案 0 :(得分:3)
您的第一个解决方案使用O(n)for
,其中包含O(n)count
- 导致O(n ^ 2)复杂度。你的第二个例子并没有以这种方式嵌套操作,O(n)的复杂性也是如此。