1. 题目
1184. 公交站间的距离
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5daad8b5e2b43434f1104995fc4cd894.png)
2. 思路
- 设置两个指针pre、back,一个顺时针向前走,一个逆时针向后走,同时设置两个cost变量来记录两个方向行驶的成本。
- 顺时针的时候,要注意pre如果指向n,说明下一次要从0开始行驶;逆时针行驶时,back如果是从0下标开始出发,那下一次要从n-1的位置行驶。
- 最后将两个方向的cost比较,取最小值返回。
3. 代码实现
var distanceBetweenBusStops = function(distance, start, destination) {
const n = distance.length
let pre = start, back = start, cost1 = 0, cost2 = 0
while (pre !== destination) {
cost1 += distance[pre]
if (++pre === n) pre = 0
}
while (back !== destination) {
if (--back < 0) back = n - 1
cost2 += distance[back]
}
return Math.min(cost1, cost2)
};
4. 参考
【宫水三叶】简单模拟题