擅长:python、mysql、java
<p>实际上,第一种方法是最好的。因为这里是小整数的乘法,所以在后面的方法中影响不大。但是,当你在一个循环中运行这个程序,计算产品的数量时,它也会产生影响。你知道吗</p>
<p>假设你有10个循环。在第二种方法中,如果一次乘法需要0(1)次。因此,在一个循环中,您将有两个这样的计算,因此需要O(2)次。对于10个这样的循环,您将有O(20)次。你知道吗</p>
<pre><code>if (checkPalindrome(x * y) and x * y > largest_product): # O(1)
largest_product = x * y # O(1)
# total O(2) for two calculations
</code></pre>
<p>但是,在第一种方法中,由于您只进行了一次计算,并且在以后的步骤中使用了计算值,因此只需要O(1)个时间,仅在计算期间。但是,没有时间了,因为你会参考它进行条件检查。对于10个这样的循环,你将有O(10)次。这样你就节省了50%的时间。你知道吗</p>
<pre><code>product = x * y # O(1) for one calculation
if (checkPalindrome(product) and product > largest_product):
largest_product = product
</code></pre>
<p>是的,如果内存是一个约束,那么为了存储变量,您可能需要内存。在这种情况下,你可以考虑第二种方法。或者如果只有一个计算点,那么在这种情况下,你最好采用第二种方法。但是,对于第一种情况,内存是约束的,仅仅存储一个变量并不需要大量内存。所以,不管怎样,我发现第一个(计算一次并存储,而不是每次计算)是最好和有效的。你知道吗</p>