我可能问了一个不重要的问题,但我注意到非常相似的代码有2个不同的运行时间!
下面两个代码都是Python中该问题的有效解决方案。然而,当在多个不同的输入(1到1000之间的随机值)上分别运行这两个代码100万次时,我得到了以下结果:
第一个代码:2.53秒
第二代码:28.8秒
知道为什么是这个原因吗?因为在我看来,它们看起来非常相似,每次都给出完全相同的输出。
p。以下是每个
的代码块<<h1>1代码/strong>def memLeak1(self, memory1: int, memory2: int):
i = 1;
while memory2 >= 0 and memory1 >= 0:
if memory1 >= memory2:
if memory1 >= i:
memory1 -= i;
else:
break;
else:
if memory2 >= i:
memory2 -= i;
else:
break;
i += 1;
return [i,memory1,memory2];
<<h1>2代码/strong>def memLeak2(self, memory1: int, memory2: int):
i = 1
while memory1 >= i or memory2 >= i:
if memory1 >= memory2:
memory1 -= i
else:
memory2 -= i
i += 1
return [i, memory1, memory2]
主要区别在于第二段代码"我
在循环外被加1,导致程序在程序中循环了额外的次数。