我遇到了一个我已经研究了几天的问题。在
在加油站(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
在“示例X=7,Y=11,Z=13 and A=[2,8,4,3,2]”中,13应该是3 下面的代码可以用于示例和其他一些情况,不确定这是否可以涵盖所有需要的场景。在
如有任何意见/更正,我们将不胜感激。在
相关问题 更多 >
编程相关推荐