【LeetCode】Gas Station
2014-05-08 22:01
197 查看
参考链接
http://blog.csdn.net/jellyyin/article/details/12245429http://blog.csdn.net/doc_sgl/article/details/12980297
题目描述
Gas Station
There are N gas stations along a circular route, where the amount of gas at station i is
gas[i].
You have a car with an unlimited gas tank and it costs
cost[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.
题目分析
1. 每一站的代价为gas-cost, 也就是求从哪一站开始累加代价和总是大于0。2. 如果所有站的代价和大于0,则所求的路线必定存在。
如果总代价〉=0,从序号0开始求代价和,如果代价和小于0,则不是从本站或者本站之前的某一个代价大于0的站开始,必从下一站即之后的站开始,而且这样的站必定存在。
总结
代码示例
class Solution { public: int canCompleteCircuit(vector<int> &gas, vector<int> &cost) { // Note: The Solution object is instantiated only once. int total = 0; int currentgas = 0; int startpoint = -1; int sz = gas.size(); for(int i = 0; i < sz; i++) { currentgas += gas[i] - cost[i]; total += gas[i] - cost[i]; if(currentgas < 0) { startpoint = i; currentgas = 0; } } return total >= 0 ? startpoint+1 : -1; } };
推荐学习C++的资料
C++标准函数库http://download.csdn.net/detail/chinasnowwolf/7108919
在线C++API查询
http://www.cplusplus.com/
vector使用方法
http://www.cplusplus.com/reference/vector/vector/
相关文章推荐
- [实时更新]jquery所有版本下载
- 解析Unicode编码和Java char
- apache-karaf-3.0.0发布features,出现"java.io.IOException: Error resolving artifact"异常解决
- 59989
- P2P 之 UDP穿透NAT的原理与实现(附源代码)
- SignalTap II逻辑分析仪的使用
- Linux Sed 使用示例
- [Zabbix] 如何实现邮件报警通知以及免费短信报警通知
- c++中类的成员函数调用剖析
- 应学会接受
- thecorner.com.cn - Customer Care
- PCduino+LAMP(Linux Apache Mysql PHP)配置 web server
- aptana增加svn插件
- 【VMCloud云平台】SCOM配置(四)-监控应用可用性
- Poj:1088 滑雪
- OpenMax IL层的接口
- leetcode第一刷_Same Tree
- RoboVM
- linux驱动学习示例代码
- 冲刺第四天