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.

    Hide Tags
     Greedy
     
      一道贪心算法的题目。
     
    #include <iostream>
    #include <vector>
    using namespace std;
    
    class Solution {
    public:
        int canCompleteCircuit(vector<int> &gas, vector<int> &cost) {
            int n = gas.size();
            if(n==0||n!=cost.size())  return -1;
            if(n==1)    return gas[0]>=cost[0]?0:-1;
            int stardIdx =0,endIdx = 0;
            int leave = 0;
            do{
                if(leave+gas[endIdx]>=cost[endIdx]){
                    leave = leave+gas[endIdx]-cost[endIdx];
                    endIdx++;
                    if(endIdx==n)   endIdx = 0;
                    continue;
                }
                stardIdx--;
                if(stardIdx==-1)    stardIdx=n-1;
                leave = leave + gas[stardIdx] - cost[stardIdx];
            }while(stardIdx!=endIdx);
            if(leave >=0)   return stardIdx;
            return -1;
        }
    
    };
    
    int main()
    {
        vector<int > gas{4};
        vector<int > cost{5};
        Solution sol;
        cout<<sol.canCompleteCircuit(gas,cost)<<endl;
    //    for(int i=0;i<gas.size();i++){
    //        cout<<gas[i]<<endl;
    //    }
        return 0;
    }
  • 相关阅读:
    小米2/2S 手机由 Smartisan OS ROM 刷回 MIUI 教程
    Java构造和解析Json数据的两种方法详解二
    python-数据类型(上):数字、布尔值、字符串、字典
    python的介绍与安装
    PyCharm快捷键
    PyCharm安装模块
    PyCharm安装
    mac如何获取文件路径
    mac常用快捷键
    linux常用命令
  • 原文地址:https://www.cnblogs.com/Azhu/p/4332812.html
Copyright © 2011-2022 走看看