//如果总剩余量小于0,返回-1
 //累计当前剩余量g-c,如果小于0,说明不能继续了,从下一个位置开始累计
var canCompleteCircuit = function(gas, cost) {
    let start=0  //初始起点
    let sum=0   //总
    let count=0  //当前剩余
    for(let i=0;i<gas.length;i++){
        count+=gas[i]-cost[i]
        sum+=gas[i]-cost[i]
        //当前累计小于0,重置起点
        if(count<0){
            //重置当前累计
            count=0
            start=i+1
        }
    }
    if(sum<0){
        return -1
    }
    return start
};

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐