首页 > 代码库 > python 小练习

python 小练习

一个环形的公路上有n个加油站,编号为0,1,2,...n-1,
每个加油站加油都有一个上限,保存在列表limit中,即limit[i]为第i个加油站加油的上限,
而从第i个加油站开车开到第(i+1)%n个加油站需要cost[i]升油,cost为一个列表。
现在有一辆开始时没有油的车,要从一个加油站出发绕这个公路跑一圈回到起点。
给你整数n,列表limit和列表cost,你来判断能否完成任务。
如果能够完成任务,输出起始的加油站编号,如果有多个,输出编号最小的。
如果不能完成任务,输出-1。

gas=0
res=[]
for i in range(n):
    gas=0
    for j in range(n):
        gas+=limit[(i+j)%n] %一开始用while来做比较麻烦
        gas-=cost[(i+j)%n]
        if gas<0:break
    if gas>=0:
        res.append(i)
if len(res)==0:print -1 %把所有可能的数字附加进列表,如果len == 0 ,就代表没有可能的结果
else :print (res[0])

python 小练习