题目
分析
每个加油站的剩余量rest[i]为gas[i] - cost[i]
我们主要研究这个加油站剩余量:
i从0开始累加rest[i],和记为cur,一旦cur小于零,说明[0, i]区间都不能作为起始位置,起始位置index从i+1算起,再从0计算curSum。
都遍历完一遍只要耗油总量大于等于0,那么index就起始位置。
局部最优:
当前累加rest[j]的和cur一旦小于0,起始位置至少要是j+1,因为从j开始一定不行。
全局最优:找到可以跑一圈的起始位置。
代码
每个加油站的剩余量rest[i]为gas[i] - cost[i]
我们主要研究这个加油站剩余量:
i从0开始累加rest[i],和记为cur,一旦cur小于零,说明[0, i]区间都不能作为起始位置,起始位置index从i+1算起,再从0计算curSum。
都遍历完一遍只要耗油总量大于等于0,那么index就起始位置。
局部最优:
当前累加rest[j]的和cur一旦小于0,起始位置至少要是j+1,因为从j开始一定不行。
全局最优:找到可以跑一圈的起始位置。
上一篇:ArrayList源码分析
【C语言加油站】qsort函数的模拟实现本文详细介绍了使用冒泡排序的逻辑模拟实现可以排序任意类型数组的qsort函数……
【C语言加油站】数据在内存中的存储详细介绍整数与浮点数在内存中的存储……
【C语言加油站】字符函数与字符串函数详细介绍字符函数与字符串函数的相关知识点……
加油站
【代码】来自北大算法课的Leetcode题解:134. 加油站。
题目描述在一条环路上有N个加油站,其中第i个加油站有汽油gas[i]升。
举报文章
请选择举报类型
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M