码迷,mamicode.com
首页 > 其他好文 > 详细

[leetcode]Gas Station

时间:2014-08-05 02:57:18      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   strong   io   for   

Gas Station

 There are N gas stations along a circular route, where the amount of gas at station i is gas[i].

You have a car with an unlimited gas tank and it costs cost[i] of gas to travel from station i to its next station (i+1). You begin the journey with an empty tank at one of the gas stations.

Return the starting gas station‘s index if you can travel around the circuit once, otherwise return -1.

Note:
The solution is guaranteed to be unique.

算法思路:

先找到哪些加油站可以安全起步,然后再逐个从这些安全的加油站出发。

代码如下:

 1 public class Solution {
 2     public int canCompleteCircuit(int[] gas, int[] cost) {
 3         int[] stations = new int[gas.length];
 4         int count = gas.length,index = 0;
 5         for(int i = 0; i < count;i++){
 6             if(gas[i] >= cost[i]){
 7                 stations[index++] = i;
 8             }
 9         }
10         breakable:
11         for(int i = 0; i < index; i++){
12             int gasCount = 0;
13             int costCount = 0;
14             for(int j = stations[i]; j < count + stations[i]; j++){
15                 gasCount += gas[j % count];
16                 costCount += cost[j % count];
17                 if(costCount > gasCount) continue breakable;
18             }
19             return stations[i];
20         }
21         return -1;
22     }
23 }

 

[leetcode]Gas Station,布布扣,bubuko.com

[leetcode]Gas Station

标签:style   blog   http   color   os   strong   io   for   

原文地址:http://www.cnblogs.com/huntfor/p/3891345.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!