首页 > 学院 > 开发设计 > 正文

134. Gas Station

2019-11-08 03:20:58
字体:
来源:转载
供稿:网友

思路很简单,顺便选一个点开始,往前加,如果总值少于0,就往后包一个点,主要是最后输出要分情况要小心!

class Solution {public: int canCompleteCircuit(vector<int>& gas, vector<int>& cost) { int n = gas.size(); int sum = 0; if(n == 0) return -1; vector<int>ve(n); for(int i = 0; i < n; ++ i){ ve[i] = gas[i] - cost[i]; sum += ve[i]; } if(sum < 0) return -1; sum = ve[0]; int right = 0, left = n - 1; while(right != left){ if(sum >= 0){ right++; sum += ve[right]; continue; } sum += ve[left]; left --; } if(sum >= 0 && left == n - 1) return 0; else if(sum >= 0) return left + 1; else return -1; }};
上一篇:135. Candy

下一篇:线程池技术

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表