贪心算法:134、加油站
程序员文章站
2024-03-11 11:37:55
...
思路:做题前注意本题索引和数组下标的区别,一次遍历,作为出发的站必须满足两个条件,即从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;
}
};
上一篇: 微信公众平台(测试接口)准备工作