zoukankan      html  css  js  c++  java
  • 【LeetCode】134. Gas Station

    Gas Station

    There are N gas stations along a circular route, where the amount of gas at station i is gas[i].

    You have a car with an unlimited gas tank and it costs cost[i] of gas to travel from station i to its next station (i+1). You begin the journey with an empty tank at one of the gas stations.

    Return the starting gas station's index if you can travel around the circuit once, otherwise return -1.

    Note:
    The solution is guaranteed to be unique.

    思路:顺序扫一圈。如果总油量小于总消耗,说明起点错误,则将起点往后移位。

    复杂度O(n)。

    几个地方需要注意:

    1、如果有解,则终点绕一圈之后回到起点

    2、最多绕一圈即可判断是有解还是无解,起点重复代表无解

    3、终点必须在起点之后

    class Solution {
    public:
        int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {
            if(gas.empty())
                return -1;
                
            int begin = 0;
            int end = begin;
            int n = gas.size();
            int totalgas = gas[begin];
            int totalcost = cost[begin];
            while(true)
            {
                while(totalgas >= totalcost)
                {
                    end = (end+1)%n;
                    if(end == begin)
                        return begin;
                    totalgas += gas[end];
                    totalcost += cost[end];
                }
                totalgas -= gas[begin];
                totalcost -= cost[begin];
                begin = (begin+1)%n;
                end = max(begin, end);  //end >= begin
                if(begin == end)
                {// restart
                    totalgas = gas[begin];
                    totalcost = cost[begin];
                }    
                if(begin == 0)
                    return -1;
            }
        }
    };

  • 相关阅读:
    runc create container 流程分析
    cri-o pod 创建源码分析
    hyperstart 容器创建流程分析
    MIT jos 6.828 Fall 2014 训练记录(lab 4)
    python 邮件发送 脚本
    jvm: 理解gc日志
    jvm:垃圾收集器
    GC 垃圾收集
    jvm结构
    Java transient关键字使用小记
  • 原文地址:https://www.cnblogs.com/ganganloveu/p/4117531.html
Copyright © 2011-2022 走看看