134.加油站

在这里插入图片描述
在这里插入图片描述

// 定义一个名为Solution的类
class Solution {
    
    // 定义一个公开方法canCompleteCircuit,输入参数为两个整数数组gas和cost,分别代表加油站的汽油量和消耗油量
    public int canCompleteCircuit(int[] gas, int[] cost) {
        
        // 初始化当前剩余油量sum为0,总剩余油量totalSum为0,以及起始加油站索引index为0
        int curSum = 0;
        int totalSum = 0;
        int index = 0;

        // 遍历整个数组,模拟遍历一圈加油站
        for (int i = 0; i < gas.length; i++) {
            
            // 更新当前剩余油量:将当前位置加油站的汽油量减去消耗油量
            curSum += gas[i] - cost[i];

            // 同时累计总剩余油量
            totalSum += gas[i] - cost[i];

            // 当前剩余油量小于0时,说明从起点到当前位置无法完成循环,需要重新选择起点(即下一个加油站)
            if (curSum < 0) {
                index = (i + 1) % gas.length; // 确保新的起点仍然在数组范围内
                curSum = 0; // 重置当前剩余油量为0
            }
        }

        // 若总的剩余油量小于0,则无法找到满足条件的起点,返回-1表示无法完成环形路线
        if (totalSum < 0) return -1;

        // 否则,返回可以完成环形路线的起始加油站索引
        return index;
    }
}

这段Java代码是解决“加油站”问题的一个解决方案。给定一系列加油站及其对应的加油量和消耗油量,此方法寻找是否存在一个起始加油站,使得汽车能按照顺序经过所有加油站后回到起始站,且油量恰好用完。如果存在这样的环形行驶路线,则返回起始加油站的索引;若不存在,则返回-1。

相关推荐

  1. 134. 加油站

    2024-03-28 19:38:01       12 阅读
  2. 134. 加油站

    2024-03-28 19:38:01       7 阅读
  3. 力扣134. 加油站

    2024-03-28 19:38:01       38 阅读
  4. 【LeetCode-134加油站(贪心)

    2024-03-28 19:38:01       33 阅读
  5. leetcode 134.加油站

    2024-03-28 19:38:01       14 阅读
  6. 【力扣】134.加油站

    2024-03-28 19:38:01       16 阅读
  7. LeetCode 134. 加油站

    2024-03-28 19:38:01       20 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-28 19:38:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-28 19:38:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-28 19:38:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-28 19:38:01       20 阅读

热门阅读

  1. 从fread 到 磁盘驱动

    2024-03-28 19:38:01       25 阅读
  2. 每天一个数据分析题(二百三十三)

    2024-03-28 19:38:01       23 阅读
  3. 只出现一次的数字——2个解题猜想

    2024-03-28 19:38:01       20 阅读
  4. 面试中高频出现的Redis面试题

    2024-03-28 19:38:01       24 阅读
  5. 【Hive】with 语法 vs cache table 语法

    2024-03-28 19:38:01       21 阅读
  6. C++进阶学习(5)继承中的重名成员与静态成员

    2024-03-28 19:38:01       19 阅读
  7. 每日一题 --- 反转字符串中的单词[力扣][Go]

    2024-03-28 19:38:01       22 阅读
  8. 20个Nginx经典面试题

    2024-03-28 19:38:01       23 阅读
  9. Windows Shell命令详解:掌握命令行的高级用法

    2024-03-28 19:38:01       22 阅读