代码随想录:加油站

class Solution {
public:
    int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {
        int res = 0;
        int sum = 0;
        int total = 0;
        //只要总量够,就能跑完一整圈
        for (int i = 0; i < gas.size(); i++) {
            total += gas[i];
            total -= cost[i];
        }
        if (total < 0)
            return -1;

        //每次局部不够的时候,跳到下一个
        for (int i = 0; i < gas.size(); i++) {
            sum += gas[i];
            sum -= cost[i];
            if (sum < 0) {
                sum = 0;
                res = i+1;
                continue;
            }
        }
        return res;
    }
};
posted @ 2025-02-05 16:46  huigugu  阅读(9)  评论(0)    收藏  举报