美文网首页
Leetcode134加油站

Leetcode134加油站

作者: answerLDA | 来源:发表于2020-01-01 20:53 被阅读0次

题目

在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。
你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。
如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。

说明:
如果题目有解,该答案即为唯一答案。
输入数组均为非空数组,且长度相同。
输入数组中的元素均为非负数。

示例 1:
输入:
gas = [1,2,3,4,5]
cost = [3,4,5,1,2]
输出: 3
解释:
从 3 号加油站(索引为 3 处)出发,可获得 4 升汽油。此时油箱有 = 0 + 4 = 4 升汽油
开往 4 号加油站,此时油箱有 4 - 1 + 5 = 8 升汽油
开往 0 号加油站,此时油箱有 8 - 2 + 1 = 7 升汽油
开往 1 号加油站,此时油箱有 7 - 3 + 2 = 6 升汽油
开往 2 号加油站,此时油箱有 6 - 4 + 3 = 5 升汽油
开往 3 号加油站,你需要消耗 5 升汽油,正好足够你返回到 3 号加油站。
因此,3 可为起始索引。

示例 2:
输入:
gas = [2,3,4]
cost = [3,4,3]
输出: -1
解释:
你不能从 0 号或 1 号加油站出发,因为没有足够的汽油可以让你行驶到下一个加油站。
我们从 2 号加油站出发,可以获得 4 升汽油。 此时油箱有 = 0 + 4 = 4 升汽油
开往 0 号加油站,此时油箱有 4 - 3 + 2 = 3 升汽油
开往 1 号加油站,此时油箱有 3 - 3 + 3 = 3 升汽油
你无法返回 2 号加油站,因为返程需要消耗 4 升汽油,但是你的油箱只有 3 升汽油。
因此,无论怎样,你都不可能绕环路行驶一周。

代码和注释

class Solution {
    //如果最终消耗的油小于等于获取的获取的油,证明可以在这个环上进行下去
    // 而开始的点是汽油的相对消耗量的最低点的下一个点,因为从下一个点开始,油就会剩余
    public int canCompleteCircuit(int[] gas, int[] cost) {
        int n = gas.length;
        int left = 0;
        //先设定最低点在第一点
        int min = gas[0] - cost[0];
        int index = 0;
        for(int i = 0;i<n;i++){
            //计算汽油的剩余量
            left += gas[i] - cost[i];
            //如果创下新低,则记录这个点
            if(left <min){
                min = left;
                index = i;
            }
        }
        //如果剩余量是负数,则证明不能沿着环绕一圈
        //如果是正数,则返回最低点的下一个点
        return left<0?-1:(index+1)%n;
    }
}

相关文章

  • Leetcode134加油站

    题目 在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从...

  • LeetCode134(2020-7-17)

    题目:https://leetcode.com/problems/gas-station/ 解析:需要保证在gas...

  • 加油站排班不合理对销量有影响吗?

    加油站排班涉及到每个加油站不同的独特情况,包含:加油站位置、规模、历史销量规律、人员配备、员工个体特性等,加油站日...

  • 贪心算法——LintCode加油站问题,下一个排列问题

    一. 加油站问题: 在一条环路上有 N 个加油站,其中第 i 个加油站有汽油gas[i],并且从第_i_个加油站前...

  • 国家环保部强化督察组对屯留县督导检查

    6月13日,国家环保部强化督察组一行3人对我县长源加油站、余吾加油站、吾元加油站等加油站油气回收设施的安装...

  • 187. 加油站

    在一条环路上有 N 个加油站,其中第 i 个加油站有汽油gas[i],并且从第i个加油站前往第i+1个加油站需要消...

  • 每天进步一点点【2019.8.29】

    一、加油站【leetcode 134】 题目描述:在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas...

  • 周三

    加油站

  • 开灯日记13

    今日心语感悟 〖奔驰车加油站〗 孩子都是奔驰车, 可惜太缺加油站, 父母想做加油站, 可惜自身缺能量。 ——开灯教...

  • LeetCode-134-加油站

    LeetCode-134-加油站 134. 加油站[https://leetcode-cn.com/problem...

网友评论

      本文标题:Leetcode134加油站

      本文链接:https://www.haomeiwen.com/subject/tsmgoctx.html