添加 0134.加油站.md C语言版本注释

This commit is contained in:
ArthurP
2021-08-29 10:37:39 +08:00
parent 6333521adf
commit d327806115

View File

@ -289,21 +289,26 @@ int canCompleteCircuit(int* gas, int gasSize, int* cost, int costSize){
int curSum = 0; int curSum = 0;
int i; int i;
int min = INT_MAX; int min = INT_MAX;
//遍历整个数组。计算出每站的用油差。并将其与最小累加量比较
for(i = 0; i < gasSize; i++) { for(i = 0; i < gasSize; i++) {
int diff = gas[i] - cost[i]; int diff = gas[i] - cost[i];
curSum += diff; curSum += diff;
if(min > curSum) if(curSum < min)
min = curSum; min = curSum;
} }
//若汽油总数为负数,代表无法跑完一环。返回-1
if(curSum < 0) if(curSum < 0)
return -1; return -1;
//若min大于等于0说明每一天加油量比用油量多。因此从0出发即可
if(min >= 0) if(min >= 0)
return 0; return 0;
//若累加最小值为负,则找到一个非零元素(加油量大于出油量)出发。返回坐标
for(i = gasSize - 1; i >= 0; i--) { for(i = gasSize - 1; i >= 0; i--) {
min+=(gas[i]-cost[i]); min+=(gas[i]-cost[i]);
if(min >= 0) if(min >= 0)
return i; return i;
} }
//逻辑上不会返回这个0
return 0; return 0;
} }
``` ```