[leetcode] Gas Station

Gas Station

思路:设置两个变量,sum判断当前的gas station的有效性;total则判断整个vector是否有解,有就返回通过sum得到的下标+1,没有则返回-1。 

class Solution {
public:
    int canCompleteCircuit(vector<int> &gas, vector<int> &cost) {
        int total=0;
        int sum=0;
        int res=-1;
        
        for(int i=0;i<gas.size();++i){
            sum+=gas[i]-cost[i];
            total+=gas[i]-cost[i];
            if(sum<0){
                res=i;//不能满足需求的最后一个点
                sum=0;
            }
        }
        if(total>=0){
            return res+1;//不能满足需求的最后一个gas station的下一个gas station即可满足需求
        }else{
            return -1;
        }
    }
};


你可能感兴趣的:([leetcode] Gas Station)