加油站

题目:

环形路上有n个加油站,第i个加油站的汽油量是gas[i].
你有一辆车,车的油箱可以无限装汽油。从加油站i走到下一个加油站(i+1)花费的油量是cost[i],你从一个加油站出发,刚开始的时候油箱里面没有汽油。
求从哪个加油站出发可以在环形路上走一圈。返回加油站的下标,如果没有答案的话返回-1。
注意:
答案保证唯一。

示例:

输入:[2, 3, 1], [3, 1, 2]    输出:1

代码:

复制代码
 1 import java.util.*;
 2 
 3 
 4 public class Solution {
 5     /**
 6      * 
 7      * @param gas int整型一维数组 
 8      * @param cost int整型一维数组 
 9      * @return int整型
10      */
11     public int canCompleteCircuit (int[] gas, int[] cost) {
12         // write code here
13         int start = gas.length - 1;
14         int end = 0;
15         int sum = gas[start] - cost[start];
16         while( start > end ){
17             if( sum > 0 ){
18                 sum += gas[end] - cost[end];
19                 end ++;
20             }else {
21                 start --;
22                 sum += gas[start] - cost[start];
23             }
24         }
25         return sum >= 0 ? start : -1;
26     }
27 }
复制代码

笔记:  

  从 start 出发,如果油量足够,则一直向后走,即 end ++。如果油量不够,则需要向后退,即 start ++。最终,在 start == end 的时候,如果有解贼一定是当前 start 在的位置。

 

posted @   John_yan15  阅读(141)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示