Leetcode 134. 加油站

class Solution {
public:
    int P(int k,int n){
        return k<0?k+n:k;
    }
    int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {
        for(int i=0;i<gas.size();++i)
            gas[i]-=cost[i];
        int k=0,t=gas[0],m=gas[0];
        for(int i=1;i<gas.size();++i)
            if((t+=gas[i])<m) m=t,k=i;
        for(int i=gas.size()-1;i>=0;--i)
            if((m+=gas[i])>=0) return i;
        return -1;
    }
};

猜你喜欢

转载自blog.csdn.net/bendaai/article/details/80985801