如何在Python中处理过大的输入?

2024-10-03 23:24:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我是一个初学者,我在练习一个关于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 = [int(i) for i in input().split()]
    setroomnos = set(roomnos)
    c = (K * sum(setroomnos) - sum(roomnos)) // (K - 1)
    print(c)

你能解释一下为什么第一个大输入超时,第二个工作正常吗 PS:最基本的操作是找到一个在列表中只出现一次的no,而不是出现K次的其他no


Tags: no代码inforinputifintsplit
1条回答
网友
1楼 · 发布于 2024-10-03 23:24:55

您的第一个解决方案使用O(n)for,其中有一个O(n)count,这导致了O(n^2)的复杂性。您的第二个示例没有以这种方式嵌套操作,O(n)复杂性也是如此。你知道吗

相关问题 更多 >