代码拉取完成,页面将自动刷新
'''
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
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。