zoukankan      html  css  js  c++  java
  • 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])
  • 相关阅读:
    RedHat Linux-配置YUM仓库
    04、管道符、重定向与环境变量
    03、新手必须掌握的Linux命令
    size_t
    decltype关键字
    python numpy使用笔记
    Huffman编码
    动态规划(dynamic programming)
    Prim算法
    Kruskal算法
  • 原文地址:https://www.cnblogs.com/cunyusup/p/7136045.html
Copyright © 2011-2022 走看看