加油站
题目:
环形路上有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 在的位置。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· 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工具