LeetCode 134: Gas Station Solution

Master LeetCode problem 134 (Gas Station), a medium challenge, with our optimized solutions in Java, C++, and Python. Explore detailed explanations, test your code in our interactive editor, and prepare for coding interviews.

134. Gas Station

Problem Explanation

Explanation:

To solve this problem, we can use the concept of a circular trip. We iterate over all gas stations and calculate the total gas left after reaching each station. If at any point the total gas becomes negative, we reset our starting station to the next station and reset the total gas to 0.

Algorithm:

  1. Initialize variables totalGas and startStation to 0.
  2. Iterate over all gas stations:
    • Calculate the total gas by adding the gas at the current station and subtracting the cost to reach the next station.
    • If the total gas becomes negative, update startStation to the next station and reset totalGas to 0.
  3. After completing the loop, check if the total gas is non-negative. If yes, return the startStation, otherwise return -1.

Time Complexity: O(n) - We iterate over all gas stations once. Space Complexity: O(1) - We use only a constant amount of extra space.

:

Solution Code

class Solution {
    public int canCompleteCircuit(int[] gas, int[] cost) {
        int totalGas = 0;
        int totalCost = 0;
        int startStation = 0;
        int tank = 0;
        
        for (int i = 0; i < gas.length; i++) {
            totalGas += gas[i];
            totalCost += cost[i];
            tank += gas[i] - cost[i];
            if (tank < 0) {
                startStation = i + 1;
                tank = 0;
            }
        }
        
        return totalGas >= totalCost ? startStation : -1;
    }
}

Try It Yourself

Loading code editor...

Related LeetCode Problems

Frequently Asked Questions

How to solve LeetCode 134 (Gas Station)?

This page provides optimized solutions for LeetCode problem 134 (Gas Station) in Java, C++, and Python, along with a detailed explanation and an interactive code editor to test your code.

What is the time complexity of LeetCode 134 (Gas Station)?

The time complexity for LeetCode 134 (Gas Station) varies by solution. Check the detailed explanation section for specific complexities in Java, C++, and Python implementations.

Can I run code for LeetCode 134 on DevExCode?

Yes, DevExCode provides an interactive code editor where you can write, test, and run your code for LeetCode 134 in Java, C++, or Python.

Back to LeetCode Solutions