1184、公交站间的距离 1184、[简单] 公交站间的距离1、题目描述环形公交路线上有n个站按次序从0到n - 1进行编号。我们已知每一对相邻公交站之间的距离distance[i]表示编号为i的车站和编号为(i 1) % n的车站之间的距离。环线上的公交车都可以按顺时针和逆时针的方向行驶。返回乘客从出发点start到目的地destination之间的最短距离。2、解题思路我们需要计算从起点start到终点destination的最短距离。由于公交路线是环形的我们有两种可能的路径顺时针方向和逆时针方向。我们可以计算这两条路径的长度然后取最小值。详细步骤确保start小于destination如果start大于destination我们交换它们的值。这可以简化后续的计算只需要考虑顺时针方向的情况。计算顺时针方向的距离从start开始沿着数组distance累加到destination的距离。这可以通过简单的循环实现。计算逆时针方向的距离逆时针方向的距离等于环形总距离减去顺时针方向的距离。环形总距离可以通过累加整个数组distance的值得到。返回最短距离比较顺时针方向和逆时针方向的距离返回较小的值。3、代码实现class Solution { public: int distanceBetweenBusStops(vectorint distance, int start, int destination) { // 确保 start 小于 destination if (start destination) { swap(start, destination); } int n distance.size(); int totalDistance 0; int clockwiseDistance 0; // 计算环形总距离 for (int dist : distance) { totalDistance dist; } // 计算顺时针方向的距离 for (int i start; i destination; i) { clockwiseDistance distance[i]; } // 计算逆时针方向的距离 int counterClockwiseDistance totalDistance - clockwiseDistance; // 返回最短距离 return min(clockwiseDistance, counterClockwiseDistance); } };解释环形总距离通过累加数组distance的所有元素得到。顺时针距离从start到destination的距离直接累加。逆时针距离总距离减去顺时针距离。最短距离返回顺时针和逆时针距离中的较小值。这样我们就可以高效地计算从起