leetcode Gas Station
2016-06-03 15:53
316 查看
题目链接
目前中等难度的题已经有点算法知识了。不再是单纯的数据结构问题了。
这个问题一看就是贪心算法的。因为。路径无限油箱,加油站这类问题贪心算法确实是一个好方法。特别是无限的油箱,没有停车次数的限制。贪心必选。
这个题的贪心算法主要是用在如何确定起始点上。在程序中用一个tempsum来计算起始点。如果tempsum小于零那么代表之前确定的起始点A并不能到达现在这个点D。。而且,A到D之间的任何一个点起始点都到不了D。因为我们保留A的原则是tempsum要大于等于,代表着A其实的时候,之前加油站的油是够用的且,对以后的行驶有多余的油提供帮助。所以当tempsum小于零的时候代表已经不够用了,就要确定下一个起始点。。
目前中等难度的题已经有点算法知识了。不再是单纯的数据结构问题了。
这个问题一看就是贪心算法的。因为。路径无限油箱,加油站这类问题贪心算法确实是一个好方法。特别是无限的油箱,没有停车次数的限制。贪心必选。
这个题的贪心算法主要是用在如何确定起始点上。在程序中用一个tempsum来计算起始点。如果tempsum小于零那么代表之前确定的起始点A并不能到达现在这个点D。。而且,A到D之间的任何一个点起始点都到不了D。因为我们保留A的原则是tempsum要大于等于,代表着A其实的时候,之前加油站的油是够用的且,对以后的行驶有多余的油提供帮助。所以当tempsum小于零的时候代表已经不够用了,就要确定下一个起始点。。
public class Solution { public int canCompleteCircuit(int[] gas, int[] cost) { int sum=0; int index=-1; int temp=0; for(int i=0;i<gas.length;i++) { sum+=(gas[i]-cost[i]); temp+=(gas[i]-cost[i]); if(temp<0) { temp=0; index=i; } } return sum<0?-1:index+1; } }
相关文章推荐
- Qt中文手册 之 QTreeWidgetItem
- 八大排序算法
- 101. Symmetric Tree [easy] (Python)
- jquery固定表头和列头
- git克隆某一个branch
- ceph存储 object的attr和omap操作
- [leetcode] 283. Move Zeroes
- CAShapeLayer的简单实用(1)
- Jmeter之正则表达式提取器
- eclipse IED的优化(gc.log)
- 第2章 大型网站及其架构演进过程
- 读取Java文件到byte数组的三种方式
- 闲暇之余,兴趣所致
- 微信第三方登录接口
- C/12个C语言面试题,涉及指针、进程、运算、结构体、函数、内存
- 第二次冲刺第六天
- php自动获取字符串编码函数mb_detect_encoding
- Carmack在QUAKE3中使用的计算平方根的函数
- 2015-10-水渠边的记忆
- 238ProductofArrayExceptSelf