我读了一些帖子,据说集合比列表更快,但据我所知,我无法迭代集合。那么,我怎样才能让我的程序更快?我正在进行在线编码挑战,对于前4个输入,程序工作正常但是对于最后一个输入有100000 T(事务)和100000 Q(查询)的程序超过了时间限制,需要大约5.000318秒
虽然限制是:
时间限制:每个输入文件1.0秒。 内存限制:256 MB 来源限制:1024 KB
T = int(input())
trans = [int(n) for n in input().split()]
Q = int(input())
for i in range(Q):
dailyTarget = int(input())
sum = 0
k = 0
while sum < dailyTarget and k < len(trans):
sum += trans[k]
k += 1
if sum < dailyTarget:
print('-1')
else:
print(k)
答案 0 :(得分:0)
由于您总是将trans
中存储的相同数字相加,您可以预先计算总和吗?无论如何,我只是快速看一下,所以我并不完全确定。