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.
Example 1:
Input: distance = [1,2,3,4], start = 0, destination = 1
Output: 1
Explanation: Distance between 0 and 1 is 1 or 9, minimum is 1.
Example 2:
Input: distance = [1,2,3,4], start = 0, destination = 2
Output: 3
Explanation: Distance between 0 and 2 is 3 or 7, minimum is 3.
Approach
C++
#include <bits/stdc++.h>using namespace std;int distanceBetweenBusStops(vector<int> &distance,int start, int destination){int sum = 0;int sum1 = 0;for (int i = 0; i < distance.size(); i++)sum += distance[i];for (int i = min(start, destination); i < max(start,destination); i++)sum1 += distance[i];return min(sum1, sum - sum1);}int main(){vector<int> distance = {1, 2, 3, 4};int start = 0, destination = 1;cout << distanceBetweenBusStops(distance, start,destination) << "\n";return 0;}
No comments:
Post a Comment