gas-station
题目描述:
There are N gas stations along a circular route, where the amount of gas at station i isgas[i].
You have a car with an unlimited gas tank and it costscost[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.
知识点:
贪心算法
解题思路:
【个人思路】
首先要理解题意,在一条环形路上有N个加气站,站点i的气的体积为gas[i],你有一辆车气罐体积不受限,当从站点i到下一个站点i+1消耗气的体积为cost[i]。找到一个可以作为起点的站点,使得从该站点出发可以遍历完整个环形的道路,否则返回-1。
我们需要明确以下两个问题:
1.若gas的总量>=cost的总量,那么一定存在一条解决路径。
2.寻找起点:设置起点res=0;依次迭代到i,若resgas+=gas[i]-cost[i],一旦在i处遇到resgas<0,那么说明当前选择的起始点不行,需要重新选择。重设res=i+1,重复迭代过程。
具体代码:

本文介绍LeetCode上的一道题目——gas-station,涉及贪心算法的解题方法。题目要求在环形道路上找到一个起点,使得车辆可以遍历所有站点。解题思路是遍历每个站点,累加当前站点的汽油量并减去消耗量,如果在某个站点累加结果变为负数,则更新起点。最终如果能遍历整个环路,则返回起点,否则返回-1。

695

被折叠的 条评论
为什么被折叠?



