[LeetCode]题解(python):134-Gas Station

Posted Ry_Chen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[LeetCode]题解(python):134-Gas Station相关的知识,希望对你有一定的参考价值。

题目来源:

  https://leetcode.com/problems/gas-station/


 

题意分析:

  在一个圈子路线里面有N个汽油站,i站的汽油有gas[i]汽油。现在有一辆无限容量的车,它从i站开到(i+1)需要耗费cost[i]汽油。如果这辆车可以走完这个圈,那么返回这个车的起点,否者返回-1.


 

题目思路:

  不难发现,如果gas的总和大于或等于cost的总和,必然存在一种路线使得走完整个圈子。那么只要找到一个起点i,从这个起点出发的所有gas的和总比cost的和大就可以了。


 

代码(python):

class Solution(object):
    def canCompleteCircuit(self, gas, cost):
        """
        :type gas: List[int]
        :type cost: List[int]
        :rtype: int
        """
        begin,subsum,sum,i = 0,0,0,0
        while i < len(gas):
            sum += gas[i] - cost[i]
            subsum += gas[i] - cost[i]
            if subsum < 0:
                subsum,begin = 0,i + 1
            i += 1
        if sum < 0:
            return -1
        else:
            return begin
View Code

 

以上是关于[LeetCode]题解(python):134-Gas Station的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode第134题—加油站—Python实现

《LeetCode之每日一题》:134.移除链表元素

Leetcode刷题Python134. 加油站

LeetCode 134. Gas Station

leetcode 134 解析

[LeetCode]题解(python):100 Same Tree