【leetCode】134_加油站

本文深入探讨了使用C++解决加油站问题的算法实现,通过一个循环遍历的方法找到能够完成环形旅程的起点,该算法考虑了油量与消耗之间的平衡,确保车辆能够在不额外加油的情况下完成整个环路。
class Solution {
public:
    int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {
        int left_oil = 0;
        int pos = 0;
        int num = gas.size();
        int iterations = num * 2;
        int start = 0, end = 0;
        for (int i = 0; i < num * 2; i ++){
            left_oil += gas[i % num];
            if (left_oil < cost[i % num]){
                left_oil = 0;
                start = (i + 1) % num;
                end = (i + 1) % num;
            }
            else{
                end ++;
                left_oil -= cost[i % num];
                if (end - start > num){
                    return start;
                }
            }
        }
        return -1;
    }
};

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值