Gas Station
来源:互联网 发布:雷阿伦生涯总数据 编辑:程序博客网 时间:2024/06/01 20:00
问题描述:
有N个油气站构成环形路径,第i个油气站有gas[i]个单位的油,一辆容量无限的油罐车从第i个油气站到第i+1个油气站需要消耗cost[i]个单位油. 如果这辆车能够从任意一站出发依靠油气站补给能够回到原来的地方.求这个起点, 如果不存在输出-1.
.
图片网址
分析:
假设从站start出发,到第n个油气站,记
这意味着可以一下排除 i - start +1 个节点不可行, 那么更新 start = i + 1, 继续从新的start排除节点
如果从start 出发能够回到start, 那么这个站就是要求的了.
如果排除所有站,说明不存在这样的站点.
这个思路过程类比序列连续最大和问题
代码:
/* 循环里面i 与 j 同步, i负责探测路径, j负责检测是否已经排除所有节点 */class Solution {public: int canCompleteCircuit(vector<int>& gas, vector<int>& cost) { int sum = 0 ; int start = 0; int j =0 ; for(int i =0 ;start < gas.size() ; i =(i+1)%gas.size(), ++j) { sum += gas[i] - cost[i]; if(ss < 0) { sum= 0 ; start = j+1; }else if((i+1)%gas.size()== start)return start; } return -1; }};
0 0
- Gas Station
- Gas Station
- Gas Station
- Gas Station
- Gas Station
- Gas Station
- Gas Station
- Gas Station
- Gas Station
- Gas Station
- Gas Station
- Gas Station
- Gas Station
- Gas Station
- Gas Station
- Gas Station
- Gas Station
- Gas Station
- 聚合函数查询
- 智能科技五大创新商业模式
- Linux主机驱动与外设驱动分离思想
- JAVA求学之路Junit&反射
- 蓝桥杯复数运算
- Gas Station
- Linux下php安装Redis扩展
- 175.翻转二叉树
- 实验五 继承和派生
- docker swarm 配置
- Linux初次见面
- mybatis教程--一对多查询
- LintCode 子树
- Sublime插件汇总