zoukankan      html  css  js  c++  java
  • [LeetCode] 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.

    class Solution {
    public:
      
    int canCompleteCircuit(vector<int> &gas, vector<int> &cost) {
            int num = gas.size();
            int remain = 0;//从第一站开始到本站剩余的gas量
            int start = 0;
            for(int i = 0;i<num;)
            {
               if(cost[i]>gas[i])
               {
                  i++;
                  continue;
               }
               else
               {
                  start = i;//标记开始站
                  remain = gas[i]-cost[i];
                  i++;
                  while(i<num &&gas[i]+remain >= cost[i])
                  {
                     remain = (gas[i]+remain - cost[i]);
                     i++;
                  }
                  if(i == num)
                  {
                    i = 0;
                  }
                  else
                  {
                    start = i+1;
                    i = start;
                    continue;
                  }
    
                  while(gas[i]+remain >= cost[i] && i<start)
                  {
                     remain = (gas[i]+remain - cost[i]);
                     i++;
                  }
                    if(i == start)
                  {
                     return start;
                  }
                  else
                  {
                    return -1;
                  }
               }
            }//end for
            return -1;
        }
    };
  • 相关阅读:
    显示内容和隐藏v-show(以及图标的动态展示)
    主表查询子表
    怎么在pda安装apk
    java学习第40天2020/8/14
    Java学习第39天2020/8/13
    java学习第38天2020/8/12
    java学习第37天2020/8/11
    rz
    git tag
    audio vedio 播放
  • 原文地址:https://www.cnblogs.com/Xylophone/p/3849541.html
Copyright © 2011-2022 走看看