【发布时间】:2015-09-29 18:35:26
【问题描述】:
我正在尝试回答有关在线法官的问题,但我一直遇到时间限制问题。该问题的主要思想是解决列表的总和减去该列表中子列表的总和。完整问题规范可见 here.
这是我的代码:
import sys
lists = sys.stdin.read().strip().split('\n')
showScores = map(int, lists[1].split())
maximum = sum(showScores)
loops = map(int, lists[0].split())[1]
for i in range(2, loops+2):
subList = lists[i].split()
print maximum - sum(showScores[int(subList[0])-1 : int(subList[1])])
有没有更好的算法来解决这个问题?考虑到我必须执行多达 500,000 次循环,我应该如何处理?
【问题讨论】:
标签: python algorithm list for-loop