134. Gas Station

There are N gas stations along a circular route, where the amount of gas at station i is gas[i].

You have a car with an unlimited gas tank and it costs cost[i] of gas to travel from station i to its next station (i+1). You begin the journey with an empty tank at one of the gas stations.

Return the starting gas station's index if you can travel around the circuit once, otherwise return -1.

Note:
The solution is guaranteed to be unique.

一刷
题解:
如果A不能到达B,那么AB间的所有station都不能到达B
如果总的cost>gas, 那么从所有的stop都不能完成一次循环

public class Solution {
    public int canCompleteCircuit(int[] gas, int[] cost) {
        int start = 0, total = 0, tank = 0;
        for(int i=0; i<gas.length; i++){
            tank += gas[i] - cost[i];
            if(tank<0){
                start = i+1;
                total += tank;
                tank = 0;
            }
        }
        return total+tank<0? -1:start;
    }
}

二刷
思路同1刷

public class Solution {
    public int canCompleteCircuit(int[] gas, int[] cost) {
        int start = 0, total = 0, tank = 0;
        for(int i=0; i<gas.length; i++){
            tank+= gas[i] - cost[i];
            if(tank<0){
                start = i+1;
                total+= tank;
                tank = 0;
            }
        }
        if(total+tank>=0) return start;
        else return -1;
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • LeetCode 134 Gas Station There are N gas stations along a...
    ShuiLocked阅读 538评论 0 0
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,776评论 0 33
  • http://blog.csdn.net/aishangyutian12/article/details/6412...
    SmallTwo阅读 262评论 0 0
  • 一直以来,人们总说,“越长大,越孤单”。这句话,随着年龄的长大,越来越深有感触。 为什么会有这样的现...
    加油坤儿阅读 120评论 0 2
  • 太太:我在朋友圈表扬你了,看到了吗? 先生:嗯,你是在表扬自己吧? 太太:这你也发现了?火眼金睛啊![ 先生:嗯,...
    黄慢糊阅读 207评论 0 0