Skip to main content

Command Palette

Search for a command to run...

Solving Leetcode Interviews in Seconds with AI: Distance Between Bus Stops

Updated
2 min read

Introduction

In this blog post, we will explore how to solve the LeetCode problem "1184" using AI. LeetCode is a popular platform for preparing for coding interviews, and with the help of AI tools like Chatmagic, we can generate solutions quickly and efficiently - helping you pass the interviews and get the job offer without having to study for months.

Problem Statement

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. Example 3:
Input: distance = [1,2,3,4], start = 0, destination = 3 Output: 4 Explanation: Distance between 0 and 3 is 6 or 4, minimum is 4. Constraints: 1 <= n <= 10^4 distance.length == n 0 <= start, destination < n 0 <= distance[i] <= 10^4

Explanation

Here's the breakdown of the solution:

  • Calculate Clockwise Distance: Iterate from the start stop to the destination stop, accumulating the distances. Handle the circular nature of the stops using the modulo operator.
  • Calculate Counterclockwise Distance: Iterate from the start stop in the reverse direction to the destination stop, accumulating the distances. Again, handle the circular nature.
  • Return Minimum: Return the minimum of the clockwise and counterclockwise distances.

  • Runtime Complexity: O(n), where n is the number of stops. Storage Complexity: O(1).

Code

    def distanceBetweenBusStops(distance, start, destination):
    """
    Calculates the shortest distance between two bus stops in a circular route.

    Args:
        distance (list[int]): The distance between neighboring stops.
        start (int): The starting stop.
        destination (int): The destination stop.

    Returns:
        int: The shortest distance between the start and destination stops.
    """
    n = len(distance)
    clockwise_distance = 0
    current_stop = start

    while current_stop != destination:
        clockwise_distance += distance[current_stop]
        current_stop = (current_stop + 1) % n

    total_distance = sum(distance)
    counterclockwise_distance = total_distance - clockwise_distance

    return min(clockwise_distance, counterclockwise_distance)

More from this blog

C

Chatmagic blog

2894 posts