【发布时间】:2020-05-25 07:04:25
【问题描述】:
我正在尝试解决 Hackerrank 的编码问题,但由于我的代码运行时间过长而不断遇到超时错误。我知道它工作得很好,缩进不是问题,代码没有任何“错误”。我只需要有关如何使其更高效运行的提示:
def main(n, o, q, m):
for x in m:
for y,z in enumerate(o):
x -= z
if x<=0:
print y+1
break
if x>0: print -1
o 和 m 是一个整数列表,通过从 m 中减去 o 的值进行循环,直到 m 小于 0,循环结束并且 m 仍然不小于 0,它将打印 -1。最终目标是从 o 中找出哪个 int 完成 m。
【问题讨论】:
-
你可以预先计算
o的部分和。 -
修复
if x> 0 : ....的缩进,以及您究竟将尝试将break排除在循环之外,如果不删除break和打印语句,您是否要同时执行if 语句需要()在他们身边 -
@PeterWood 我无法预先计算,因为我需要获取完成金额的索引。
-
@FishingCode 我已经更新了问题,一旦我找到完成 m 的值,我就会跳出循环,
ifx>0: ...是如果 m 的值在循环之后没有完成,它将打印-1 -
问题可以重新打开吗?我想我让它更专注了。
标签: python performance coding-efficiency