1 Star 0 Fork 0

ZENGWatermelon/LeetCode

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
134.加油站.py 1.73 KB
一键复制 编辑 原始数据 按行查看 历史
sunzhaoc 提交于 2020-11-24 11:23 . master
'''
Description:
Version: 1.0
Author: Vicro
Date: 2020-11-19 21:55:25
LastEditTime: 2020-11-19 22:50:45
FilePath: \Leetcode\Chinese\134.加油站.py
'''
#
# @lc app=leetcode.cn id=134 lang=python3
#
# [134] 加油站
#
# @lc code=start
class Solution:
def canCompleteCircuit(self, gas, cost):
# Choose one gas station to begin:
for i in range(len(gas)):
V = 0
if i == 0:
gas_temp = gas
cost_temp = cost
else:
gas_temp = gas[i:] + gas[0: i]
cost_temp = cost[i:] + cost[0: i]
for j in range(len(gas_temp)):
V += gas_temp[j]
if V >= cost_temp[j]:
V -= cost_temp[j]
if j == len(gas_temp) - 1:
return i
else:
break
return -1
class Solution2:
def canCompleteCircuit(self, gas, cost):
# total记录可获得的总油量-总油耗, cur记录当前油耗情况, ans记录出发位置
total, cur, ans = 0, 0, 0
for i in range(len(gas)):
total += gas[i] - cost[i]
cur += gas[i] - cost[i]
if cur < 0: # 油不够开到i站
cur = 0 # cur置零,在新位置重新开始计算油耗情况
ans = i + 1 # 将起始位置改成i+1
return ans if total >= 0 else -1 # 如果获得的汽油的量小于总油耗,则无法环
# 行一周返回 -1;反之返回ans
sol = Solution2()
A = sol.canCompleteCircuit([1,2,3,4,5], [3,4,5,1,2])
print(A)
# @lc code=end
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/watermelonTT/LeetCode.git
git@gitee.com:watermelonTT/LeetCode.git
watermelonTT
LeetCode
LeetCode
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385