[英]How can I reduce timing complexity?
最近我從 java 遷移到 python 所以我習慣了冗長的代碼我想知道如何降低下面代碼的時序復雜度。
def main():
n_ingri = int(input())
ingri = [int(i) for i in input().split()][:n_ingri]
quant = [int(i) for i in input().split()][:n_ingri]
power_puff = 0
count = 0
terminate = True
while terminate:
for x in range(n_ingri):
if ingri[x] <= quant[x]:
count += 1
else:
break
if count != n_ingri:
terminate = False
else :
power_puff += 1
count = 0
for x in range(n_ingri):
quant[x] = quant[x] - ingri[x]
print(power_puff)
main()
在這里,我使用除法降低了復雜性,因此您只需要迭代一次。
def main():
n_ingri = int(input())
ingri = [int(i) for i in input().split()][:n_ingri]
quant = [int(i) for i in input().split()][:n_ingri]
divs = [quant[i] // ingri[i] for i in range(n_ingri)]
power_puff = min(divs)
# Update quant so the final quant result is the same (uncomment if needed)
# quant = [quant[i] - min_div*ingri[i] for i in range(n_ingri)]
print(power_puff)
main()
請注意,我注釋了量化更新,但如果您想在 main() 的末尾獲得相同的精確量化值,您可以取消注釋它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.