1184. Distance Between Bus Stops*
https://leetcode.com/problems/distance-between-bus-stops/
题目描述
A bus has n
stops numbered from 0
to n - 1
that form a circle. We know the distance between all pairs of neighboring stops where distance[i]
is the distance between the stops number i
and (i + 1) % n
.
The bus goes along both directions i.e. clockwise and counterclockwise.
Return the shortest distance between the given start and destination stops.
C++ 实现 1
分别计算顺时针的距离和逆时针的距离, 然后返回最小值.
class Solution {
public:
int distanceBetweenBusStops(vector<int>& distance, int start, int destination) {
if (start > destination) std::swap(start, destination);
int sum = std::accumulate(distance.begin(), distance.end(), 0);
int clockwise_dis = std::accumulate(distance.begin() + start,
distance.begin() + destination, 0);
int counterclockwise_dis = sum - clockwise_dis;
return std::min(clockwise_dis, counterclockwise_dis);
}
};