Top 150 InterviewEasy

Gas Station

Detailed guide and Python implementation for the 'Gas Station' problem.

Problem Statement

Easy

There are n gas stations along a circular route, where the amount of gas at the ith station is gas[i]. You have a car with an unlimited gas tank and it costs cost[i] of gas to travel from the ith station to its next (i + 1)th station. You begin the journey with an empty tank at one of the gas stations. Return the starting gas station's index if you can travel around the circuit once in the clockwise direction, otherwise return -1. If there exists a solution, it is guaranteed to be unique.

Write a function canCompleteCircuit(gas: List[int], cost: List[int]) -> int.

Constraints
  • n == len(gas) == len(cost)
  • 1 <= n <= 10^5
  • 0 <= gas[i], cost[i] <= 10^4

Examples

Example 1
Input
gas = [1,2,3,4,5], cost = [3,4,5,1,2]
Output
3
Explanation

Start at station 3. tank = 4. Go to 4: cost 1, tank = 4-1+5 = 8. Go to 0: cost 2, tank = 8-2+1=7. Go to 1: cost 3, tank = 7-3+2=6. Go to 2: cost 4, tank = 6-4+3=5. Go to 3: cost 5, tank = 5-5=0. We reached back to station 3.

Example 2
Input
gas = [2,3,4], cost = [3,4,3]
Output
-1
Explanation

No station can complete the circuit.

Need a Hint?
Consider using Greedy-specific data structures like sets or heaps.
Edge Cases to Watch
  • Empty input structures
  • Single element inputs
  • Large numerical bounds

Ready to Solve?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Open in Editor

Recommended Python Resources

Expand your knowledge with related interactive tutorials, cheat sheets, and code comparisons.