python等待时间最短_如何用python求解加油站最大等待时间?

我遇到了一个我已经研究了几天的问题。在

在加油站(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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值