Le migliori 150 intervisteFacile

Stazione di servizio

Guida dettagliata e implementazione Python per il problema della "stazione di servizio".

Dichiarazione del problema

Facile

Ci sono n stazioni di servizio lungo un percorso circolare, dove la quantità di gas presso la stazione i-esima è gas[i]. Hai un'auto con un serbatoio di gas illimitato e viaggiare dalla iesima stazione alla successiva (i + 1)esima stazione costa costo[i] del gas. Inizi il viaggio con il serbatoio vuoto in una delle stazioni di servizio. Restituisce l'indice della stazione di servizio di partenza se puoi percorrere il circuito una volta in senso orario, altrimenti restituisce -1. Se esiste una soluzione, è garantito che sia unica.

Scrivi una funzione canCompleteCircuit(gas: List[int], cost: List[int]) -> int.

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

Esempi

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?
Prendi in considerazione l'utilizzo di strutture dati specifiche di Greedy come set o heap.
Edge Cases to Watch
  • Strutture di input vuote
  • Ingressi a elemento singolo
  • Grandi limiti numerici

Pronto a risolvere?

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

Apri nell'editor
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

Risorse Python consigliate

Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.