class Solution {
public:
int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {
int curSum = 0; // 当前消耗与得到之和
int totalSum = 0; // 总的消耗与得到之和
int start = 0; // 记得初始化
for(int i = 0; i < gas.size(); i++)
{
totalSum += gas[i] - cost[i];
curSum += gas[i] - cost[i];
if(curSum < 0) // 小于0 就抛弃重置
{
start = i + 1; // 这个是关键
curSum = 0;
}
}
if(totalSum < 0) return -1; // 无法跑完一圈 消耗 > 获取
return start;
}
};