如何处理python中过大的输入?
我是一个初学者,我在练习一个关于hackerrank的问题。 我编写这段代码是为了解决一个问题,该问题对于大型输入超时:如何处理python中过大的输入?,python,performance,runtime-error,time-complexity,large-files,Python,Performance,Runtime Error,Time Complexity,Large Files,我是一个初学者,我在练习一个关于hackerrank的问题。 我编写这段代码是为了解决一个问题,该问题对于大型输入超时: 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 = 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次的其他no。您的第一个解决方案使用O(n)表示
,其中包含一个O(n)计数
,导致O(n^2)复杂性。您的第二个示例没有以这种方式嵌套操作,O(n)复杂性也是如此