LeetCode - Arrays - 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.

 

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.

 

class Solution {
    public int distanceBetweenBusStops(int[] distance, int start, int destination) {
        int cw_dist = 0;
        int acw_dist = 0;
        if(start > destination) {
            int temp = start;
            start = destination;
            destination = temp;
        }
        for(int i=start;i<destination;i++){
            cw_dist = cw_dist+distance[i];
        }
        //System.out.println(cw_dist);
        
        int j=0;
        int counter = destination;
        while(j<distance.length){
            if(counter > distance.length-1){
                counter = 0;
            }
            if(counter == start || cw_dist<=acw_dist) break;
            acw_dist = acw_dist + distance[counter];
            counter++;
            j++;
        }
        //System.out.println(acw_dist);
        
        return (cw_dist<=acw_dist)?cw_dist:acw_dist;
    }
}

Recent Updates

Recent updates on DevOpsPal

Social

Follow us of social for latest updates.

DevOps Hub

Links to get started.