我有一个家庭作业:在数字 5**200,000 中找到 50,000 个连续数字的最大和。我知道如果我对这个数字进行 for 循环,它不会在可行的时间内结束。我试图把这个数字放在一个列表中并遍历列表,但我不明白它是如何工作的?为什么它不像第一种情况那样表现?是什么让它更快?那是我的代码:
def maxdigits(number,digits):
s=str(number) #conversting the number to a string
l = [int(char) for char in s]
maximum = current = sum(l[:digits])
for i in range(0,len(l)-digits):
current = current-l[i]+l[i+digits]
if current > maximum: maximum = current
return maximum