描述
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.
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: e solution is guaranteed to be unique.
#include<iostream>
using namespace std;
int GasStation(int gas[], int cost[], int n)
{
int left = 0;
int index = 0;
int sum = 0;
for (int i = 0; i < n; i++)
{
left += gas[i] - cost[i];
sum += gas[i] - cost[i];
if (left < 0)
{
index = i;
left = 0;
}
}
if (sum < 0)
return -1;
else
return index+1;
}
int main()
{
const int n = 6;
int gas[n] = { 2, 4, 7, 8, 6, 2 };
int cost[n] = { 100, 5, 3, 6, 5, 1 };
int index = GasStation(gas, cost, n);
cout << index << endl;
}