Python 为什么以下逻辑的性能为零?

Python 为什么以下逻辑的性能为零?,python,performance-testing,correctness,Python,Performance Testing,Correctness,我编写这个函数是为了提高可编码性,性能为0,正确性为100% A = [-1, -3] B = [1,2,3] C = [1,4,5,6,77,2] 下面的函数应该返回传递给它的最小整数,但不存在整数列表 def solution(A): temp = 0; tempLst = [] for item in A: temp = temp+1 if temp not in A: tempLst.append(temp

我编写这个函数是为了提高可编码性,性能为0,正确性为100%

A = [-1, -3]
B = [1,2,3]
C = [1,4,5,6,77,2]
下面的函数应该返回传递给它的最小整数,但不存在整数列表

def solution(A):
    temp = 0;
    tempLst = []
    for item in A:
        temp = temp+1
        if temp not in A:
            tempLst.append(temp)

    return min(tempLst) if tempLst else max(A) + 1

为什么会这样?我想要做的就是在没有堆、itertools和partial的情况下完成它。

实际上是一个嵌套循环

for item in A:
这一行在
A
的所有元素上循环

    if temp not in A:
。。。对于这些元素中的每一个,再次循环,将
temp
A
的每个元素进行比较

    if temp not in A:

此代码的运行时是
A
大小的二次型。例如,如果
A
有1000个元素,那么这个代码需要1000*1000=1000000个步骤才能完成。

用简单的英语来说,这个代码应该做什么?你好@JacobIRR,我的错,我已经添加了这个函数应该做什么。呃,我仍然不知道你所说的“但不存在传递给它的int list”是什么意思。我得到的A,B,C的结果是1,4,3。听起来它是在寻找列表中不存在的最小整数?听起来更像是在寻找列表中不存在的最小正整数。我可以在xrange(min(A),max(A))上迭代,并检查A中存在的每个递增值,还有其他可能的方法吗?