您的位置:首页 > 编程语言 > Go语言

Algorithms—134.Gas Station

2015-06-26 14:19 567 查看
思路:每个加油站提供的油减去下一段路上耗费的油,生成新的数组。循环数组长度2倍的量,找出其中一段长度为数组长且每部的剩余油量都不小于0的;

public class Solution {
public int canCompleteCircuit(int[] gas, int[] cost) {
int[] n = new int[gas.length];
for (int i = 0; i < n.length; i++) {
n[i] = gas[i] - cost[i];
}
int sum = 0;
int begin = 0;
int truebegin=0;
for (int i = 0; i < n.length*2; i++) {
sum += n[i%n.length];
while (sum < 0) {
sum -= n[truebegin];
begin++;
truebegin=begin%n.length;
}
if (i-begin>=n.length) {
return truebegin;
}
}
return -1;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: