我遇到了一个我已经研究了几天的问题。在
在加油站(a[])排队等候的N辆车,根据所需的油量,有3台加油机(X,Y,Z),加油量有限。加满1公升需要1秒钟。汽车瞬间移动。在
假设一辆汽车的燃料需求量是D,汽车应该去一个至少提供D升或等待的加油机。如果所有的自动售货机都没人,汽车按字母顺序到第一个。
当任何一辆车不能再加油时返回-1。在
例如X=7,Y=11,Z=13和A=[2,8,4,3,2]
在0时,car0开车到X,car1开到Y
Z中没有足够的燃料供car2使用,所以它等待
在时间2,car0完成加油,2号车开到加油机X
时间2时,3号车厢驶向Z号分配器
所有分配器都被占用,所以car4等待
当car2和car3离开时,X和Y中没有足够的气体供给car4,所以car4要等到car1加油完毕。
时间8时,4号车开到分配器Y
最大等待=8
灵感:工作到第二次,但我记不清哪辆车在哪个加油机加油。在def solution(A,X,Y,Z):
station = {
'X':True,
'Y':True,
'Z':True
}
t=0
for y in range(100):
t+=1
for i in range(len(A)):
if A[i]<=X and station['X']:
A[i]-=1
station['X']=False
X-=1
elif A[i]<=Y and station['Y']:
A[i]-=1
Y-=1
station['Y']=False
elif A[i]<=Z and station['Z']:
A[i]-=1
Z-=1
station['Z']=False
else:
break