let 134. Gas Station

主题思想: 这个肯定O(n)有些事情需要考虑清楚,如果遇到哪个站点,无法走下去了,肯定需要从下一个站点重新开始才有可能继续走下去。

记录下总的气量和花费气量差值,如果小于0,肯定无法完成。

class Solution {
    public int canCompleteCircuit(int[] gas, int[] cost) {

        if(gas==null||gas.length==0) return -1;

        int total=0;
        int sum=0;
        int start=0;
        int N=gas.length;
        for(int i=0;i<N;i++){
            sum+=gas[i]-cost[i];
            if(sum<0){
                total+=sum;
                sum=0;
                start=i+1;
            }
        }
        total+=sum;

        return total<0?-1: start;
    }

}

猜你喜欢

转载自blog.csdn.net/the_conquer_zzy/article/details/79647013