码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode - Gas Station

时间:2014-09-27 15:36:29      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:io   os   for   on   c   amp   r   size   as   

//假设sum为总的耗油量,max为起始点a到终点b的耗油量,如果,当到达b的时候,
//max < 0,那么,出发点肯定不能从a开始,这个时候将max = 0,然后,pos = i+1,选择pos为起始点,然后继续遍历。
//如果,最后的sum < 0,那么,返回-1,如果,sum >= 0,则返回pos.
class Solution {
public:
    int canCompleteCircuit(std::vector<int> &gas, std::vector<int> &cost) {
		int max = 0,sum = 0,pos = 0,sz = gas.size();
		for (int i = 0; i < sz; i++)
		{
			sum += gas[i] - cost[i];
			max += gas[i] - cost[i];
			if(max < 0)
			{
				max = 0;
				pos = i+1;
			}
		}
		return sum >= 0 ? pos : -1;
    }
};

leetcode - Gas Station

标签:io   os   for   on   c   amp   r   size   as   

原文地址:http://blog.csdn.net/akibatakuya/article/details/39610005

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!