【leetcode】1184. 公交站间的距离(js实现)

1. 题目

1184. 公交站间的距离
在这里插入图片描述

2. 思路

  1. 设置两个指针pre、back,一个顺时针向前走,一个逆时针向后走,同时设置两个cost变量来记录两个方向行驶的成本。
  2. 顺时针的时候,要注意pre如果指向n,说明下一次要从0开始行驶;逆时针行驶时,back如果是从0下标开始出发,那下一次要从n-1的位置行驶。
  3. 最后将两个方向的cost比较,取最小值返回。

3. 代码实现

/**
 * @param {number[]} distance
 * @param {number} start
 * @param {number} destination
 * @return {number}
 */
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. 参考

【宫水三叶】简单模拟题

猜你喜欢

转载自blog.csdn.net/weixin_44109827/article/details/129398261