【发布时间】:2022-01-21 13:09:32
【问题描述】:
谁能帮我优化下面的代码。
power = [2,3,2,1]
noElement = len(power)
result = 0
for i in range(noElement):
sum = 0
minEleme = float('inf')
for j in range(i, noElement):
minEleme = min(minEleme,power[j])
sum+=power[j]
result += (minEleme*sum)%1000000007
print("min : ",minEleme,"sum : ",sum,"result : " ,result)
print(result)
问题: 一家公司有 n 台服务器。第 i 个服务器的功率是 power[i]。连续服务器组的功率 [l,r] 可以计算为
找到所有可能的连续服务器组的幂的总和。根据输入值,答案可能很大,因此返回答案模 1000000007
1
1
示例: 幂=[2,3,2,1]
Power[0,0] => min([2]) * sum([2]) => 2 * 2 = 4.
Power[0,1] => min([2,3]) * sum([2,3]) => 2 * (2+3) = 10
Power[0,2] = 14
Power[0,3] = 8
Power[1,2] = 10
Power[1,3] = 6
Power[2,2] = 4
Power[2,3] = 3
Power[3,3] = 1
幂和 = 69。 返回 69%1000000007。
【问题讨论】:
-
隐藏像
sum这样的内置函数是不明智的。除此之外,%1000000007发生了什么 - 代码的目的到底是什么?如果你不知道它应该做什么,很难优化它。另外,您说您“某些测试用例出现超时异常”,您能否提供这种情况的示例和确切的错误消息? -
感谢格里斯玛的回复。对不起,我没有测试用例数据,它被锁定了。我已经更新了问题,如果您还需要任何信息,请告诉我。
标签: python optimization