LeetCode #1184. Distance Between Bus Stops

题目

1184. Distance Between Bus Stops


解题方法

分别从正反两个方向计算走过的长度返回最小值即可,注意反方向走的时候需要把destination位置的值也加上。
时间复杂度:O(n)
空间复杂度:O(1)


代码

class Solution:
    def distanceBetweenBusStops(self, distance: List[int], start: int, destination: int) -> int:
        length1 = length2 = 0
        i = start
        while i != destination:
            length1 += distance[i]
            i = (i + 1) % len(distance)
        
        i = (start - 1) % len(distance)
        while i != destination:
            length2 += distance[i]
            i = (i - 1) % len(distance)
        else:
            length2 += distance[i]
        
        return min(length1, length2)
posted @ 2020-11-24 14:39  老鼠司令  阅读(79)  评论(0)    收藏  举报