[LeetCode]Gas Station
2015-07-26 16:34
423 查看
解题思路:
1,假设每个city的净值为 gas[ i ] - cost[ j ];
2,遍历所有gas station,carry为净值的和;
3,中心思想,如果在某个station,carry的值是最小的,那么从下一个station开始绕一定是最好的策略。同时,如果carry总和 >= 0 一定可以绕一圈,否则不能够绕一圈返回-1
4,注意一点:下一个点要用 (minInd+1) % size ,计算,因为最后一个station的下一个是第0个
1,假设每个city的净值为 gas[ i ] - cost[ j ];
2,遍历所有gas station,carry为净值的和;
3,中心思想,如果在某个station,carry的值是最小的,那么从下一个station开始绕一定是最好的策略。同时,如果carry总和 >= 0 一定可以绕一圈,否则不能够绕一圈返回-1
4,注意一点:下一个点要用 (minInd+1) % size ,计算,因为最后一个station的下一个是第0个
class Solution { public: int canCompleteCircuit(vector<int>& gas, vector<int>& cost) { if (gas.size() < 1) return -1; int minSum = gas[0] - cost[0]; int minInd = 0; int carry = gas[0] - cost[0]; for (int i = 1; i < gas.size(); ++i){ carry += (gas[i] - cost[i]); if (carry < minSum){ minSum = carry; minInd = i; } } return carry >=0 ? (minInd + 1)%gas.size(): -1; } };
相关文章推荐
- poj(3984)——迷宫问题(输出路径)
- Android学习笔记_SQLite数据库存储
- UML中的用例图
- BestCoder 1st Anniversary 1002-1005
- 报数
- 视音频编解码学习工程:H.264分析器
- mybatis一对多的配置
- 【C#】26. Enigma 模拟器
- 树莓派与无线网卡模块
- POJ3897 Maze Stretching (二分+BFS)
- MongoDB常用操作命令大全
- HPU 1002 A + B Problem II【大数】
- JVM 垃圾收集器介绍
- DB2数据库中提高INSERT性能详解
- Qt使用自带的windeployqt 生成exe来发布软件
- Qt使用自带的windeployqt 生成exe来发布软件
- MyBatis学习系列八:多表查询二
- 7.26选择器
- 递归:解决汉诺塔问题(数据结构3.2 P103)
- 递归:解决汉诺塔问题(数据结构3.2 P103)