题目:1184. 公交站间的距离
思路:来两边for循环,一遍正向、一遍反向,时间复杂度为0(n)。
class Solution {
public:
int distanceBetweenBusStops(vector<int>& distance, int start, int destination) {
int n=distance.size();
int sum=0;
//正向
for(int i=start;i!=destination;i=(i+1)%n){
sum+=distance[i];
}
int tmp=0;
//反向
for(int i=start;i!=destination;i=(i-1+n)%n){
//方向需要注意的是distance
tmp+=distance[(i-1+n)%n];
}
return min(tmp,sum);
}
};