原题
题意:
过一个循环的加油站,每个加油站可以加一定数量的油,走到下一个加油站需要消耗一定数量的油,判断能否走一圈。
设置两个变量, sum 判断当前的指针的有效性; total 则判断整个数组是否
有解,有就返回通过 sum 得到的下标,没有则返回-1。
class Solution
{
public:int canCompleteCircuit(vector<int> &gas, vector<int> &cost){
int sum = 0;int total = 0;int Ind = -1;for (int i = 0; i < gas.size(); i++){
sum += gas[i] - cost[i];total += gas[i] - cost[i];if (sum < 0){
sum = 0;Ind = i;}}return total >= 0 ? Ind + 1 : -1;}
};