美文网首页
贪心三:加油站

贪心三:加油站

作者: 程一刀 | 来源:发表于2021-06-08 18:50 被阅读0次

题目地址: https://leetcode-cn.com/problems/gas-station/

题目描述:
在一条环路上有 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(vector<int> gas, vector<int> cost) {
        
        int total = 0;
        for (int i = 0; i<gas.size(); i++) {
            total = total + gas[i] - cost[i];
        }
        if (total <0) {
            return  -1;
        }
        int current = 0;
        int index = 0;
        for (int i = 0; i<gas.size(); i++) {
            current = current + gas[i] - cost[i];
            if (current < 0) { // 在有解的条件下,如果 (i,j) < 0, 那么 (i+k,j)也小于0
                index = i + 1;
                current = 0;
            }
        }
        return index;
    }
};

参考链接: https://github.com/youngyangyang04/leetcode-master/blob/master/problems/0134.%E5%8A%A0%E6%B2%B9%E7%AB%99.md

相关文章

  • 贪心三:加油站

    题目地址: https://leetcode-cn.com/problems/gas-station/[http...

  • 加油站(贪心)

    题目 小伟要开车去一个与他家距离为 L(1 <= L <= 1000000) 个单位的地方旅行, 他从家里出发时车...

  • 984. 不含 AAA 或 BBB 的字符串/ 134. 加油站

    984. 不含 AAA 或 BBB 的字符串 相关标签 : 贪心算法 134. 加油站 相关标签: 贪心算法

  • 贪心十二:加油站

    题目地址: https://leetcode-cn.com/problems/gas-station/[http...

  • 贪心(三)

    一个人成熟最明显的表现真的在于不会因为某些人的到来感到开心,亦不会因为某些人的离去感到悲伤。 我清楚的知道,当我补...

  • 再复习贪心 leetcode 134 加油站

    写这题之前,好好回顾下贪心解法: 分发糖果 / 饼干,第一天写的内容。排序后,先从最小的孩子开始满足。 跳跃数组。...

  • POJ2431 Expedition

    赤裸裸的贪心,因为油箱无限大,所以我们可以这么认为,我们路过一个加油站之后,我们在之后的路上随时可以选择加那个加油...

  • 瞎谈中国文化对商业行为的影响

    有一个“加油站寓言”这么说: 在中国,张三开个加油站,赚了很多钱,于是,李四、王五也纷纷开起了加油站,然后,价格战...

  • (三) 贪心算法

    # 引例 —— 钱币找零问题 贪心算法的思想非常简单且算法效率很高,在一些问题的解决上有着明显的优势。 假设有3种...

  • 舍得

    贪心VS舍得,目标太多—贪心,什么都想得到—贪心,什么都想要美好—贪心,什么都想要舒服—贪心,没有付出就想要得到—...

网友评论

      本文标题:贪心三:加油站

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