class Solution {
// 定义一个方法,用于判断是否可以完成环路行驶
public int canCompleteCircuit(int[] gas, int[] cost) {
// 初始化当前累加油量和总油量差值
int curSum = 0;
int totalSum = 0;
// 初始化起始加油站索引
int index = 0;
// 遍历加油站数组
for (int i = 0; i < gas.length; i++) {
// 计算当前加油站的油量差值(加油量减去消耗量)并累加到当前累加油量
curSum += gas[i] - cost[i];
// 计算总油量差值并累加到总油量差值
totalSum += gas[i] - cost[i];
// 如果当前累加油量小于0,说明从当前加油站出发无法到达下一个加油站
if (curSum < 0) {
// 重置当前累加油量为0
curSum = 0;
// 更新起始加油站索引为下一个加油站
index = i + 1;
}
}
// 如果总油量差值为负数,说明无法完成环路行驶
if (totalSum < 0) {
return -1;
}
// 返回起始加油站索引
return index;
}
}