贪心环 加油站问题

class Solution {
public:
    int canCompleteCircuit(vector<int> &gas, vector<int> &cost) {

        int sum=0;
        int total=0;
        int start=-1;
        for(int i=0;i<gas.size();++i){
            sum+=(gas[i]-cost[i]);
            total+=(gas[i]-cost[i]);
            
            if(sum<0){
                sum=0;
                start=i; // // 不能达到该点i,则start到i-1之间的点都不能作为有效起点,将i作为新的起始点
            }
        }
        //int sum=gas[start]-cost[start];

        return total>=0?(start+1):-1;
        
    }
};

猜你喜欢

转载自blog.csdn.net/u010325193/article/details/85526567