力扣134. 加油站

迭代

  • 思路:
    • 暴力模拟迭代;
    • 假设从第 idx 个加油站开始,使用一个变量对行驶的加油站个数计数,如果最后行驶的个数为 size,则是可行的;
    • 否则,行驶过的加油站都不可行;(加快更新 idx 重试)
      • 是否可行,通过累计获取的汽油容量与消耗的容量进行比较,Sum(gasi) > Sum(costi);
cpp 复制代码
class Solution {
public:
    int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {
        int size = gas.size();
        int idx = 0;

        while (idx < size) {
            int sumOfGas = 0;
            int sumOfCost = 0;
            int cnt = 0;
            while (cnt < size) {
                int j = (idx + cnt) % size;
                sumOfGas += gas[j];
                sumOfCost += cost[j];
                if (sumOfCost > sumOfGas) {
                    break;
                }

                cnt++;
            }

            if (cnt == size) {
                return idx;
            } else {
                idx = idx + cnt + 1;
            }
        }

        return -1;
    }
};
相关推荐
IronMurphy13 小时前
【算法五十六】84. 柱状图中最大的矩形
算法
fie888913 小时前
matlab打靶法求解两点边值优化问题
开发语言·算法·matlab
酉鬼女又兒13 小时前
零基础入门计算机网络:第一章概述全解(三种交换方式+八大性能指标+体系结构分层+十年考研真题精讲)
网络协议·计算机网络·考研·网络安全·职场和发展·计算机外设·求职招聘
不做无法实现的梦~13 小时前
常见工程分析软件
stm32·嵌入式硬件·算法
hetao173383713 小时前
2026-05-28~06-02 hetao1733837 的刷题记录
c++·算法
ZhengEnCi13 小时前
O08-单写线程与单读线程冲突分析
算法
仍然.14 小时前
算法题目---优先级队列
算法
一个爱编程的人14 小时前
图的相关概念
c++·算法·图论
迈巴赫车主14 小时前
贪心算法
算法·贪心算法
星马梦缘14 小时前
死锁与进程资源分配问题的解法
算法·操作系统·深度优先·死锁