力扣134. 加油站

迭代

  • 思路:
    • 暴力模拟迭代;
    • 假设从第 idx 个加油站开始,使用一个变量对行驶的加油站个数计数,如果最后行驶的个数为 size,则是可行的;
    • 否则,行驶过的加油站都不可行;(加快更新 idx 重试)
      • 是否可行,通过累计获取的汽油容量与消耗的容量进行比较,Sum(gas[i]) > Sum(cost[i]);
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;
    }
};
相关推荐
qianbo_insist6 分钟前
Mask R-CNN Fast-ReID 结合
人工智能·算法·cnn
lbb 小魔仙19 分钟前
【Java】基于 Java 的分布式系统实战:分布式锁 + 事务 + 一致性算法,干货满满
java·分布式·算法
老蒋每日coding20 分钟前
Go语言面试题及答案总结(一)
面试·职场和发展·golang
朔北之忘 Clancy23 分钟前
第一章 顺序结构程序设计(3)
c++·算法·青少年编程·竞赛·教材·考级·讲义
Ethan-D24 分钟前
每日一题#21 二维 DP + 计数类
java·python·算法·leetcode·动态规划
飞Link27 分钟前
微调阶段中的模型自我提升、通用模型蒸馏和数据扩充
人工智能·算法·数据挖掘
共享家952728 分钟前
力扣刷题之路
算法·leetcode·深度优先
七夜zippoe34 分钟前
Python算法优化实战:时间与空间复杂度的艺术平衡
开发语言·python·算法·贪心算法·动态规划·复杂度
青槿吖35 分钟前
【Java集合通关秘籍】从List到Set:解锁无序不重复的集合魔法✨
java·开发语言·算法
Yupureki42 分钟前
《算法竞赛从入门到国奖》算法基础:入门篇-贪心算法(中)
算法·贪心算法