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)

浙公网安备 33010602011771号