当前位置: 首页 > 后端技术 > Java

LeetCode-134-加油站

时间:2023-04-01 15:01:58 Java

gasstation题目描述:一条环路上有N个加油站,第i个加油站有汽油gas[i]升。你有一辆油箱容量没有限制的汽车,从第i个加油站开到第i+1个加油站需要花费[i]升汽油。你从其中一个加油站开始,从一个空油箱开始。如果能开一圈,返回出发时的加油站编号,否则返回-1。注意:如果问题有解决方案,则该答案是唯一的答案。输入数组均为非空数组且长度相同。输入数组中的元素都是非负数。例子见LeetCode官网。来源:LeetCode链接:https://leetcode-cn.com/probl...版权归LeetCode所有。商业转载请联系官方授权,非商业转载请注明出处。解法1:穷举法从第一个加油站开始,判断是否可以从当前加油站绕起点绕回起点。如果是,返回当前加油站位置。如果没有,判断移动到下一个加油站作为起点。具体判断是否可以以某个加油站为起点的过程如下:如果当前油量加上当前加油站的汽油量小于当前加油站消耗量,则表示不可能去下一站并跳过这种可能性;如果可以去到下一站,记录下当前剩余油量和已经经过的加油站数量,然后去下一站继续判断;直到走到尽头,如果走过所有的加油站,就意味着可以以当前起点的起点加油站为起点绕一圈,回到起点加油站。publicclassLeetCode_134{/***穷举法**@paramgas*@paramcost*@return*/publicstaticintcanCompleteCircuit(int[]gas,int[]cost){//共有n个加油站inttotalN=gas.length;//从第一个加油站开始遍历for(inti=0;i