
int canCompleteCircuit(int* gas, int gasSize, int* cost, int costSize) {
int sum = 0;
for (int i = 0; i < gasSize; i++) {
sum += gas[i] - cost[i];
}
if (sum < 0) {
return -1;
}
int result = 0;
sum = 0;
for (int i = 0; i < gasSize; i++) {
sum += gas[i] - cost[i];
if (sum < 0) {
sum = 0;
result = i+1;
}
}
return result;
}
本文介绍了一个C语言实现的算法,用于解决加油站问题,即寻找从某个加油站出发能够绕一圈回到原点的起点。算法首先计算总油量是否足够完成一圈,如果不足则返回-1;若足够,则通过遍历每个加油站,找到合适的起点。
338

被折叠的 条评论
为什么被折叠?



