题意:在一个环形中,有n个加油站,每个站的油量是gas[i],从i到i+1的加油站需要cost[i]的油量。初始油桶的油量是0,设计能走完一圈的合适路线。
思路:遍历n个加油站,计算gas[i]-cost[i],用sum和total两个值来储存,sum用于判断是否满足条件,total用于计算剩余油量总和。
代码:
package GasStation;
public int GetIndexOfStation(int []gas,int []cost){
int index = 1;
for(int i = 0 ; i<gas.length ; i++){
int sum += gas[i]-cost[i];
int total = sum;
if(sum < 0) {
index=i+1;
sum = 0;
}
}
if(total < 0) return -1;
return index;
}
public static void main(String[] args) {
GasStation gs = new GasStation();
int []gas = {1,2,3,4};
int []cost = {2,2,4,6};
int index = gs.GetIndexOfStation(gas, cost);
System.out.println(index);
}
}
878

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



