欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

贪心算法:134、加油站

程序员文章站 2024-03-11 11:37:55
...

贪心算法:134、加油站

贪心算法:134、加油站 

思路:做题前注意本题索引和数组下标的区别,一次遍历,作为出发的站必须满足两个条件,即从i到i+1当前油箱的剩余量大于等于0,遍历完之后总油箱的剩余量大于等于0。

class Solution {
public:
    int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {
        int cur=0,total=0,start=0;
        for(int i=0;i<gas.size();i++){
            //当前剩余量
            cur+=(gas[i]-cost[i]);
            //总剩余量
            total+=(gas[i]-cost[i]);
            if(cur<0){
                //当前剩余量小于0时,下标加1,也表示起始站
                start=i+1;
                cur=0;
            }
        }
        return total>=0?start:-1;
    }
};

 

相关标签: leetcode刷题