Python 为什么以下逻辑的性能为零?
我编写这个函数是为了提高可编码性,性能为0,正确性为100%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
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中存在的每个递增值,还有其他可能的方法吗?