我在练习Leetcode,我想问3个关于代码运行时间的问题。你知道吗
我注意到在Leetcode上,即使相同的代码也会有 如果多次提交,则运行时间不同。以及 差别很大,这正常吗?我把区别看得很清楚 第一次是26%,第二次是51%。真的是这样 当我想弄清楚我在哪里,怎么做的时候 很好,代码是。
实际代码:Leetcode p21,remove element
这是从int列表中删除一个值的所有元素,而不创建新列表,并返回新列表的长度。你知道吗
def removeElement(IntList, val):
n = 0
while n < len(IntList):
if IntList[n] == val:
IntList.pop(n)
else:
n += 1
return len(IntList)
def removeElement2(IntList, val):
while val in IntList:
IntList.remove(val)
return len(IntList)
你可以看到,我写了两个可以工作的函数,第二个比第一个短得多,但是第一个似乎更快。我想知道为什么。你知道吗
谢谢你
对于感兴趣的人,我尝试使用timeit来评估这两个函数。结果很有趣,我发现随着列表长度的增加,这两个函数的效率会发生变化:
当列表较短时,第一个比第二个慢得多:
但是,如果我创建一个非常长的列表:
第二个功能现在慢多了。你知道吗
相关问题 更多 >
编程相关推荐